------- Comment #2 from pinskia at gcc dot gnu dot org 2009-05-10 22:38 ------- This code is undefined because are there are two stores to test2 without a sequence point. test2+=readvlnum(&test2); Can be evaluated like: tmp1 = test2; tmp2 = readvlnum(&test2); test2 = tmp1 + tmp2; Or: tmp2 = readvlnum(&test2); tmp1 = test2; test2 = tmp1 + tmp2;
Both are what the C/C++ standards say it could evaluate this statement. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40096