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.