https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71114
--- Comment #12 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Iain Sandoe from comment #11) > I wonder if it's a stack/data alignment problem maybe not; comparing 6.1 and trunk with the function annotated to __attribute__((noinline)) it seems that the problem is introduced before the inlining; and it looks, as you say, to be related to the load of the constant value equivalent to data[0]. For 6.1 since the function is static the constant load is moved into variable_shift() and the value of i is passed in eax. This all shows up in a Linux X x86_64-apple-darwin10 configured like: ../gcc-mainline/configure --prefix=/somewhere --target=x86_64-apple-darwin10 --host=x86_64-linux-gnu --build=x86_64-linux-gnu --enable-languages=c --enable-targets=all