This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
gcc not warning on all occurences of operations with undefined results?
- From: Daniel Kabs <daniel dot kabs at gmx dot de>
- To: gcc-help at gcc dot gnu dot org
- Date: Tue, 15 Nov 2005 14:48:24 +0100
- Subject: gcc not warning on all occurences of operations with undefined results?
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