From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22438 invoked by alias); 5 Jan 2007 06:35:50 -0000 Received: (qmail 22429 invoked by uid 22791); 5 Jan 2007 06:35:49 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-105-friday.nerim.net (HELO kraid.nerim.net) (62.4.16.105) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 05 Jan 2007 06:35:43 +0000 Received: from zeus.integrable-solutions.net (gdr.net1.nerim.net [62.212.99.186]) by kraid.nerim.net (Postfix) with ESMTP id 3B94641035; Fri, 5 Jan 2007 07:35:38 +0100 (CET) Received: from zeus.integrable-solutions.net (localhost [127.0.0.1]) by zeus.integrable-solutions.net (8.13.3/8.13.3/SuSE Linux 0.7) with ESMTP id l056ZZ9V032756; Fri, 5 Jan 2007 07:35:38 +0100 Received: (from gdr@localhost) by zeus.integrable-solutions.net (8.13.3/8.13.3/Submit) id l056ZZrC032755; Fri, 5 Jan 2007 07:35:35 +0100 To: Mike Stump Cc: Andrew_Pinski@PlayStation.Sony.Com, gcc-patches@gcc.gnu.org Subject: Re: [PATCH, C++] Make Canonical ICE instead of just warn when mismatching References: From: Gabriel Dos Reis In-Reply-To: Date: Fri, 05 Jan 2007 06:35:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2007-01/txt/msg00338.txt.bz2 Mike Stump writes: | On Jan 3, 2007, at 9:30 PM, Andrew_Pinski@PlayStation.Sony.Com wrote: | > Since Doug mentioned it would ICE without checking enabled | > (http://gcc.gnu.org/ml/gcc-patches/2007-01/msg00172.html), it seems | > the | > right thing to just ICE and then watch out for more fall out. | | No, that's wrong. If enable checking is off, we normally don't run | this code, so changing it in that case, isn't interesting. Further, | when we normally do run that code, checking it on. We want soft fail | in that case, and your patch removes that feature. | | > Yes right now we know of a testcase where before this patch we will | > pass | | Pass? I get: | | mrs2 $ ./xgcc -B./ -x c++ -S t.c | t.c: In instantiation of 'CentX<3>': | t.c:8: instantiated from here | t.c:6: warning: canonical types differ for identical types Mesh<3> | and Mesh<3> | | Is this what you meant by pass? | | If so, well, that was the design intent. Now that I think about it, warning() is also wrong, because it leds user believe something is wrong with her code, while in fact it is the compiler which is defective. We can invent a new diagnotic category for this kind of thing or sorry(). -- Gaby