The compiler doesn't warn when you read a variable twice in an expression where you also write it.
Look at http://www.research.att.com/~bs/bs_faq2.html#evaluation-order to see the description of the problem. (GCC) 3.4.4 (mingw special) c++ -Wall -pedantic -ansi -- Summary: Read twice and write on a variable in same expression Product: gcc Version: 3.4.4 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: moura at kdewebdev dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27224