[Bug c/69746] New: [6 Regression] diagnostic about non-constant expression not helpful
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 10 15:00:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69746
Bug ID: 69746
Summary: [6 Regression] diagnostic about non-constant
expression not helpful
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
Target Milestone: ---
#define SIZEOF_INT 4
#define ASSERT(e) extern int test[1-2*!(e)];
ASSERT((1 << (8*SIZEOF_INT-1)) < 0)
since GCC 6 results in
t.c:2:30: error: variably modified ‘test’ at file scope
#define ASSERT(e) extern int test[1-2*!(e)];
^
t.c:4:1: note: in expansion of macro ‘ASSERT’
ASSERT((1 << (8*SIZEOF_INT-1)) < 0)
^~~~~~
but no mentioning of the signed overflow occuring in 1 << 31 and thus the
non-constant result.
GCC 5 accepts this without complaining.
More information about the Gcc-bugs
mailing list