Hello there, gcc 3.3.5 issues warnings on lines like a[i] = i++; i = i++; *p++ = func(*p); e.g. "test_increment.c:19: warning: operation on `i' may be undefined" I take it, this is because of the C standard saying, that if I have an expression and somewhere in that expression, I use an increment (decrement) operator on a variable, I can not mention that variable elsewhere in the expression. The warnings are very helpful in finding badly written expressions. But why doesn't gcc warn about this code s.a = s.a++; p->a = p->a++; IMHO, these lines also infringe upon the above mentioned rule or did I miss something important? Cheers Daniel