http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47701
Summary: separate warning to detect c99 enum constraint violation Product: gcc Version: 4.4.5 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: er...@gcc.gnu.org C99 6.7.2.2 states: The expression that defines the value of an enumeration constant shall be an integer constant expression that has a value representable as an int. Obviously, gcc has an extension that any integral value can be used, and -pedantic can detect that this extension was utilized: $ cat foo.c enum { a = 0x100000001LL }; int main(void) { return a; } $ gcc -Wall -Wextra -std=c99 -fdiagnostics-show-option foo.c -o foo $ gcc -Wall -Wextra -std=c99 -pedantic -fdiagnostics-show-option foo.c -o foo foo.c:1: warning: ISO C restricts enumerator values to range of ‘int’ [-pedantic] $ ./foo; echo $? 1 However, -pedantic is a rather heavy hammer; I would love to have a dedicated -W option, independent of -pedantic, for detecting just the issue of using an integer constant outside the range of int, to be sure that I don't fall foul of something like failure to compiler, or worse behavior like silent enum truncation, on other compilers that don't implement the same extension as gcc.