[Bug c/53064] -Wsequence-point behaves inconsistently
manu at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 16 16:28:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53064
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |diagnostic
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-03-16
CC| |manu at gcc dot gnu.org
Ever confirmed|0 |1
Severity|trivial |normal
--- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
This is a bug caused by early folding of (x ? 0 : 0). Similar to PR65430. The
actual code produced by GCC is:
int a = 0;
++a;, NON_LVALUE_EXPR <a>;;
and you actually get a warning for the unused value, which is even more
confusing:
test.c:5:5: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
a + (++a ? 0 : 0);
^
If one prevents the folding, the warning is given:
test.c:5:8: warning: operation on ‘a’ may be undefined [-Wsequence-point]
a + (++a ? 0 : 1);
^
More information about the Gcc-bugs
mailing list