Re: Accessing non-existing varargs argument

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 15/12/14 11:44, Florian Weimer wrote:
> On 12/15/2014 12:39 PM, Richard Earnshaw wrote:
>> On 12/12/14 23:50, Florian Weimer wrote:
>>> On 12/12/2014 08:02 PM, Jeff Law wrote:
>>>
>>>> It'd probably work for the specific cases Florian wants to tackle, but
>>>> I'd consider it highly non-portable.
>>>
>>> I agree, that's why I asked for something “GCC-portable”.
>>>
>>
>> Don't go this way.  Seriously, you can't assume that a future platform
>> ABI won't break if you do.  ABI's at this level really aren't controlled
>> by GCC, which just has to conform to whatever the platform ABI requires.
>>   We were very close in AArch64 to defining the ABI for variadics to push
>> all variadic (from the ... onwards) arguments onto the stack - it leads
>> to a very simple ABI from an implementation viewpoint and eliminates
>> much of the grotty code around reconstructing the parameter list.
> 
> This would still work except in a very pathological corner case which 
> cannot happen with glibc (the stack cannot be empty when the open 
> function is called because all user code runs with a non-empty stack).
> 
> Did you shy away from the simple implementation because of too many 
> interop failures?
> 

We certainly ran into some problems with non-conforming code.  Not least
of which was GCC itself :-( - though I think that particular issue has
been fixed now.  It certainly created enough uncertainty as to the depth
of the rabbit hole that we decided not to pursue that avenue.

R.






[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux