This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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.