http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54300
--- Comment #2 from Eric Batut <eric.batut at allegorithmic dot com> 2012-08-20 16:11:35 UTC --- (In reply to comment #1) Hi Richard Using "-O2 -fno-strict-aliasing" generates the exact same (incorrect) code. > Your testcase is quite convoluted but it looks you may be violating C > type-based aliasing rules. Thus, try -fno-strict-aliasing.