http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60570
Bug ID: 60570
Summary: expression in 'elif' directive mis-diagnosed as error
when group will be skipped
Product: gcc
Version: 4.7.3
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: preprocessor
Assignee: unassigned at gcc dot gnu.org
Reporter: seb.grindle at gmail dot com
Consider the following C99 program:
#if 1
int i;
#elif 1/0
#endif
With gcc 4.7.3:
gcc -c test.c
we get
test.c:3:8: error: division by zero in #if
According to 6.10.1p5, any sequence of tokens between the #elif and the newline
is valid syntax since the group for which this line is the controlling
condition will be skipped, yet gcc emits a divide by zero error.
(I don't know if this bug is present in later versions as 4.7.3 is the latest I
have tested on.)
Seb