------- 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