public inbox for
help / color / mirror / Atom feed
* c++/10796: gianormous enum values
@ 2003-05-15  7:26 kevin
  0 siblings, 0 replies; only message in thread
From: kevin @ 2003-05-15  7:26 UTC (permalink / raw)
  To: gcc-gnats

>Number:         10796
>Category:       c++
>Synopsis:       gianormous enum values
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-illegal-code
>Submitter-Id:   net
>Arrival-Date:   Thu May 15 07:26:00 UTC 2003
>Originator:     Kevin Cousins
>Release:        gcc version 3.2.2
Linux 2.4.18-17.7.x i686
In C++, according to Stroustrup, enums can grow to sizeof(int).  On this machine, sizeof(int)==4, but I when exploring the maximum size enum value g++ would honour, I got an ICE.

The following code (put it in a file called enum.C) COMPILES with given command line and runs

$ cat enum.C <<EOF
enum test {
    acceptable = 0x7fffffffffffffff,
    unacceptable = 0xffffffffffffffff

int main() {
        t = acceptable,
        u = unacceptable;
    return 0;
$ g++ -save-temps enum.C -o enum
$ ./enum

Replace line in enum.C that says:

    acceptable = 0x7fffffffffffffff,

with the following line:

    acceptable = -1,

and attempt to compile with command line as given.
Don't use ridiculous enum values?  Is that sufficient, or should the compiler be able to pick this up?

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-05-15  7:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-15  7:26 c++/10796: gianormous enum values kevin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).