This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/18050] -Wsequence-point reports false positives
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Mar 2006 12:53:30 -0000
- Subject: [Bug c/18050] -Wsequence-point reports false positives
- References: <bug-18050-4370@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from rguenth at gcc dot gnu dot org 2006-03-22 12:53 -------
Sure - but this doesn't matter in this case. And
6.5.3.1 tells you
"The expression ++E is equivalent to (E+=1)."
6.5.16 says
"The side effect of updating the stored value of the left operand shall
occur between the previous and the next sequence point."
For i = ++i; this means we have
i = (i += 1);
where for i += 1 the next sequence point is the i = ... assigment?
Of course for the particular testcase the ordering of the two stores
does not matter. Would int i=0; i = ++i + 1; be able to result in
i == 1? I don't think so as per 6.5.16.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18050