This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: va-arg-25.c still fails on i686-linux
- From: "Zack Weinberg" <zack at codesourcery dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Geoffrey Keating <geoffk at apple dot com>, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, rth at redhat dot com
- Date: Mon, 12 Jan 2004 16:26:47 -0800
- Subject: Re: va-arg-25.c still fails on i686-linux
- References: <871xq8p9is.fsf@codesourcery.com><B555C890-452E-11D8-94EA-000A95B1F520@apple.com><20040113002201.GC18064@atrey.karlin.mff.cuni.cz>
Jan Hubicka <hubicka@ucw.cz> writes:
>>
>> On 09/01/2004, at 11:06 PM, Zack Weinberg wrote:
>>
>> >
>> >I am still seeing va-arg-25.c fail at all optimization levels on
>> >i686-linux. It has done so, as far as I can tell, ever since it
>> >was introduced. Could you please either fix it or XFAIL it?
>> >
>> I think it would be better if an x86 port maintainer looked at this
>> failure. The testcase does not fail on powerpc-Darwin.
>
> It don't even need x86 port maintainer :)
> The problem is wrong aligning of va_arg inside builtins.c when argument
> alignment exceeds PARM_BOUNDARY.
>
> Additionally I noticed some problems with SSE enabled (we mistakely used
> SSE regiser for variadic call and output warning)
>
> Note that I am not quite sure about the PAD_VARARGS_DOWN check, it just
> seems appropriate at that place.
>
> Bootstrapping/regtesting in progress, OK if it passes?
The concept looks good but I am nervous about a change in
machine-independent code. Can you arrange testing on a few more
architectures? (especially ones with complicated rules about
arguments being passed in registers - ia64 comes to mind).
Also please add commentary to std_expand_builtin_va_arg explaining
what this code is doing.
zw