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

Reply via email to