This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: __builtin_va_arg rfc
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: __builtin_va_arg rfc
- From: Jeffrey A Law <law at upchuck dot cygnus dot com>
- Date: Sat, 24 Apr 1999 19:23:58 -0600
- cc: egcs-patches at egcs dot cygnus dot com, Jim Wilson <wilson at cygnus dot com>
- Reply-To: law at cygnus dot com
In message <19990423024451.A16102@cygnus.com>you write:
>
> --x+6KMIRAuhnl3hBn
> Content-Type: text/plain; charset=us-ascii
>
> Beginning with a proof-of-concept patch Jim did some years ago,
> here's a first cut at a version that properly isolates the ABI
> issues to the back end.
>
> I'm particularly interested in comments from the C++ folks
> whether the struct creation bits in alpha.c for __builtin_va_list
> are going to get me in trouble -- I don't set all of the same
> bits that the C++ front end would for a struct.
>
> Another point to note is that __builtin_va_arg sets neither
> MEM_IN_STRUCT_P nor MEM_SCALAR_P, and does set a (single) unique
> MEM_ALIAS_SET for every value to come out. This should put the
> nail in the coffin of the semi-annual struct-via-varargs bug,
> and improve performance a bit to boot.
>
> Of course the changes to stdarg.h and varargs.h are temporary.
> Unless of course we convert all 19 special-case targets. ;-)
>
> The patch bootstraps on Alpha and i686, and checks out with no
> torture or ph regressions on Alpha.
>
> Comments?
An FYI, I don't think we should try to deal with this for egcs-1.2, even
though the primary motivation is to fix a ppc varargs/stdarg problem.
jeff