[Bug c++/15012] New: Unexpected behaviour on i--
mdeluigi at student dot ethz dot ch
gcc-bugzilla@gcc.gnu.org
Mon Apr 19 15:08:00 GMT 2004
Try that code:
---8<---
int j = 2;
int i = 2;
i = i-- + ++j;
cout << i;
--->8---
The suprising result is that i == 1.
I tried this on pc (intel), powerpc and sparc.
The result is because the compiler does something like:
---8<---
tmp1 = i--;
tmp2 = ++j;
i = i + tmp2;
i = tmp1;
--->8---
(check the asm-code for more details).
That's not what the programer expects.
--
Summary: Unexpected behaviour on i--
Product: gcc
Version: 3.3
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mdeluigi at student dot ethz dot ch
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15012
More information about the Gcc-bugs
mailing list