This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/10796: [3.3/3.4 regression] ICE (segfault) when defining an enum with two values: -1 and MAX_INT_64BIT
- From: giovannibajo at libero dot it
- To: gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, kevin at proximity dot com dot au, nobody at gcc dot gnu dot org
- Date: 15 May 2003 10:40:03 -0000
- Subject: Re: c++/10796: [3.3/3.4 regression] ICE (segfault) when defining an enum with two values: -1 and MAX_INT_64BIT
- Reply-to: giovannibajo at libero dot it, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, kevin at proximity dot com dot au, nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
Old Synopsis: gianormous enum values
New Synopsis: [3.3/3.4 regression] ICE (segfault) when defining an enum with two values: -1 and MAX_INT_64BIT
State-Changed-From-To: open->analyzed
State-Changed-By: bajo
State-Changed-When: Thu May 15 10:40:02 2003
State-Changed-Why:
Confirmed. To make it clearer, the following code snippet
ICEs GCC:
------------------------------------------------
enum test
{
one = -1,
two = 0xffffffffffffffff
};
------------------------------------------------
pr10796.cpp:4: error: integer constant is too large for "long" type
pr10796.cpp:5: internal compiler error: Segmentation fault
Please submit a full bug report,
I call the code legal because it would be possible to use
"unsigned long long" as underlying type for such an
enumerator (at least on x86, where its size is 8 bytes),
even if I don't know what the C++ ABI says about this.
Anyway, we shouldn't segfault on this for sure.
It's a regression wrt 2.95 (which was failing gracefully).
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10796