[Bug c/31273] Erroneous bitfield conversions to boolean values
wilson at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Mar 19 23:49:00 GMT 2007
------- Comment #1 from wilson at gcc dot gnu dot org 2007-03-19 23:49 -------
I'm not a C++ expert, so I'm not the right person to say for sure, but this
looks like an accidental bug to me. There were patches added to change the
bitfield type representation, the is_bitfield_expr_with_lowered_type change,
which is for PR 26534. I believe these patches have a bug.
It looks to me like the bug is in standard_conversion in cp/calls.c at these
lines
if (bitfield_type)
from = strip_top_quals (bitfield_type);
This sets from, but fails to set fcode, resulting in an inconsistency. In this
case, fcode is INTEGER_TYPE and from is now an enumeral type after originally
being an integer type. This causes a failure further down in the tcode ==
BOOLEAN_TYPE code where we fail to match the conditions due to this
inconsistency.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31273
More information about the Gcc-bugs
mailing list