[Bug lto/42088] flag_gtoggle in free_lang_data hides -fcompare-debug errors
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Nov 30 15:05:00 GMT 2009
------- Comment #15 from rguenth at gcc dot gnu dot org 2009-11-30 15:05 -------
The issue with the boolean_type_node is that the middle-end does not have
a type for a comparison result but implicitly assumes boolean_type_node.
So for
D.xxxx_16 = (boolean) D.xxxx_6;
if (D.xxxx_16 != 0)
with a re-set boolean_type_node we fold this to D.xxxx_6 != 0, with
the original Ada boolean_type_node we do not. The C frontend for
decaying to bool always produces a comparison btw, not the truncation
we see above (and it only truncates to 8 bits).
In the end we want to unconditionally use a canonical boolean_type_node
in the middle-end, but this forces us to mangle all decls early (as
the mangler looks for boolean_type_node trees).
While the patch in comment #14 now bootstraps ok it has testsuite fails.
FAIL: g++.dg/pch/system-2.C -O2 -g assembly comparison
I think for 4.5 we should admit defeat and disable free-lang-data
unconditionally if not using LTO.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42088
More information about the Gcc-bugs
mailing list