PING: PATCH: PR middle-end/45234: [4.4/4.5/4.6 Regression] ICE in expand_call, at calls.c:2845 when passing aligned function argument from unaligned stack after alloca

H.J. Lu hjl.tools@gmail.com
Thu Sep 23 11:14:00 GMT 2010


On Wed, Sep 22, 2010 at 3:01 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Wed, Sep 22, 2010 at 9:47 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>> On Tue, Sep 21, 2010 at 09:30:16PM +0200, Eric Botcazou wrote:
>>> > > OK to backport it to 4.4/4.5 branches?
>>> >
>>> > Yeah, sure.
>>>
>>> This badly breaks on i586 though.  On the 4.5 branch:
>>
>> Here is a shorter testcase:
>>
>> /* { dg-do compile } */
>> /* { dg-options "-march=i586" { target ilp32 } } */
>>
>> struct S { union { double b[4]; } a[18]; } s, a[5];
>> void foo (struct S);
>> struct S bar (struct S, struct S *, struct S);
>>
>> void
>> foo (struct S arg)
>> {
>> }
>>
>> void
>> baz (void)
>> {
>>  foo (bar (s, &a[1], a[2]));
>> }
>>
>> Unless this is resolved soon, I think the 4.5/4.4 backports of this patch
>> should be reverted.
>
> I am testing this patch on trunk and 4.5.
>
> --
> H.J.
> ---
> gcc/
>
> 2010-09-22  H.J. Lu  <hongjiu.lu@intel.com>
>
>        PR middle-end/45234
>        * calls.c (expand_call): Don't call check all variable sized
>        adjustments are multiple of preferred stack boundary after
>        stack alignment when calling builtin functions.
>
> gcc/testsuite/
>
> 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
>
>        PR middle-end/45234
>        * gcc.target/i386/pr45234.c: New.
>

There are no regressions on trunk and 4.5. I configured
--with-arch=i586 for 32bit
gcc.  I am testing it on 4.4.

-- 
H.J.



More information about the Gcc-patches mailing list