This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]