http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55108
--- Comment #4 from Mikael Pettersson <mikpe at it dot uu.se> 2013-02-03 23:24:37 UTC --- On armv5tel-linux-gnueabi this bug is reproducible with gcc-4.6 but not with gcc-4.7 or 4.8. The wrong-code was made latent for 4.7.0 by r179556 aka PR38885, a missed-optimization fix. Bisecting with that fix disabled (a simple #if 0 / #endif wrapper around the new code) showed that the wrong-code was fixed properly for 4.8 by r187648 aka PR53352, a fix for incorrect CSE of unions on ARM. Backporting r187648 to 4.6 fixes this PR's test case with 4.6 on armv5tel. Anyone backporting r187648 to 4.7 or 4.6 should also backport the test case fixup in r187654.