This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, C++] Make Canonical ICE instead of just warn when mismatching


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. To be able to compile up, say an entire Linux distribution, have it build (not error out), and then go back and review the logs for any of these `warnings'. If any are found, fix them, and then repeat.

When the next compiler is released, we plan on asking users (or, they might find out via word of mouth or google) if running the canonical verifier fixes their problem, if it does, they have an instant work around for any bug in this area, and we can quickly know that the area to fix is type canonicalization.

OK?

No.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]