This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: va-arg-25.c still fails on i686-linux


On Tue, Jan 13, 2004 at 01:37:36AM +0100, Jan Hubicka wrote:
> > 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).
> 
> Every architecture passing arguments in registers use it's own va_arg
> expander (see ia64_va_arg).  This code triggers only in quite specific
> case of architecture having no register passing convention but still
> requiring larger alignment than word for some operands.  I know only of
> i386 being such a crazy creature.
> 
> > 
> > Also please add commentary to std_expand_builtin_va_arg explaining
> > what this code is doing.
> /* va_list pointer is alligned to PARM_BOUNDARY.  If argument actually
>    require greater alignment, we much perform dynamic alignment.  */
> 
> sounds fine?

Probably, as I believe that I understand more or less the patch. However 
there are a few typos:

1) s/alligned/aligned/

2) s/require/requires/ 
  (also I believe that "If the argument" sounds better 
  than without "the")

3) s/much/must/


For 2) this is if I correctly understand the patch, i.e., if the 
comment refers to a single argument. If it refers to the whole 
argument list instead, then s/argument/arguments/.

Sorry to sound pedantic, but I find that correct spelling and grammar 
in comments are important when I try to understand the code.

	Regards,
	Gabriel

> 
> Honza
> > 
> > zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]