[Bug libstdc++/23271] Members of ctype_base appear not to be integral constant expressions.
john at johnmaddock dot co dot uk
gcc-bugzilla@gcc.gnu.org
Mon Aug 8 09:57:00 GMT 2005
------- Additional Comments From john at johnmaddock dot co dot uk 2005-08-08 09:57 -------
Is the print member really already overflowed? It has a value of 0200 which is
0x80: so if char is signed (it is on cygwin) then it's setting the sign bit,
which should be OK I think. Although I admit I would have prefered the use of
an unsigned type as a bitmask.
Aha! Is this the cause? : the signed value is promoted to an int initially *with
sign extension*, and then when the compiler has all the values it desides that
the enum needs only one byte for storage, so it tries to fit all the values into
"signed char", and only then finds that the promoted value won't fit? I'm just
making wild guesses here you understand!
Thanks, John Maddock.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23271
More information about the Gcc-bugs
mailing list