Thank you! I tested on your advice (i386 hardware)... -O2 -fno-strict-aliasing, still wrong result but -O2 -fno-gcse, correct result Daniel -----Ursprüngliche Nachricht----- Von: Bossom, John [mailto:John.Bossom@xxxxxxxxxx] Gesendet: Montag, 15. November 2004 21:53 An: Beschorner Daniel; gcc-help@xxxxxxxxxxx Betreff: RE: -O2 problem / GCC 3.3.x Read up on -fstrict-aliasing (which is on with -O2). Try building again with -O2 -fno-strict-aliasing (Not saying this is the problem, however, if it goes away with the -fno-strict-aliasing then you'll know) -----Original Message----- From: gcc-help-owner@xxxxxxxxxxx [mailto:gcc-help-owner@xxxxxxxxxxx]On Behalf Of Beschorner Daniel Sent: Monday, November 15, 2004 3:42 PM To: 'gcc-help@xxxxxxxxxxx' Subject: -O2 problem / GCC 3.3.x Any idea why results differ between -O and -O2 with GCC 3.3.x/Linux??? GCC 2.95 works fine. results: -O 500000 -O2 300000 Thanks Daniel #include <stdio.h> int A,B,C; int i; int Q[1]; int H(int X, int Y) { return X^Y^100000; } int main() { A=B=C=100000; A+=H(B,C); C+=H(A,B); A+=H(B,C); C+=H(A,B); for (i=0;i<1;i++) Q[i] = 0; printf("%i\n",A); return 0; } This message may contain privileged and/or confidential information. If you have received this e-mail in error or are not the intended recipient, you may not use, copy, disseminate or distribute it; do not open any attachments, delete it immediately from your system and notify the sender promptly by e-mail that you have done so. Thank you.