D2 is really that stable as it is claimed to be?

Walter Bright newshound2 at digitalmars.com
Sat Sep 21 11:55:44 PDT 2013


On 9/21/2013 11:03 AM, Maxim Fomin wrote:
> For example, I was pissed off two days ago when
> git-head dmd rejected to compile large code base due to some 'enum overflow'
> error. Being watching bugzilla and github for two years, that change was neither
> expected nor clear for me.

Enum members with no initializer are defined to be set to the previous enum 
member's value + 1. This, of course, can overflow if the previous value is the 
max value for the type. For example,

enum E {
     A = int.max,
     B
}

C:\cbx\mars>dmd test
test.d(3): Error: enum member test.E.B overflow of enum value cast(E)2147483647

This change was made because the behavior of ignoring the overflow was listed as 
a bug.

Since you said it was unclear, how could this be made clear?

------------------------------------
As C code:

enum E {
     A = 2147483647,
     B
};

and gcc reports:

test.c:4: error: overflow in enumeration values


More information about the Digitalmars-d mailing list