http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55184
--- Comment #4 from Mathias Gaunard <mathias at gaunard dot com> 2012-11-04 18:01:27 UTC --- Sorry, I edited the file in between and ended up uploading the wrong test case. Below is the result on my machine with the fixed testcase. $ gcc --version gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -dumpmachine x86_64-linux-gnu $ gcc test.c -o test && ./test 1 (should be 1) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 1 (should be 1) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) $ gcc -O1 test.c -o test && ./test 1 (should be 1) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 1) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0) 0 (should be 0)