[RFC] PR61300 K&R incoming args

Florian Weimer fweimer@redhat.com
Mon Jun 2 10:00:00 GMT 2014


On 05/31/2014 08:56 AM, Alan Modra wrote:

>> It's fine to change ABI when compiling an old-style function
>> definition for which a prototype exists (relative to the
>> non-prototype case).  It happens on i386, too.
>
> That might be so, but when compiling the function body you must assume
> the worst case, whatever that might be, at the call site.  For K&R
> code, our error was to assume the call was unprototyped (which
> paradoxically is the best case) when compiling the function body.

Is this really a supported use case?  I think I remember tracking down a 
bug which was related to a lack of float -> double promotion because the 
call was prototyped, and the old-style function definition wasn't.  This 
would have been on, ugh, SPARC.  I think this happened only in certain 
cases (float arguments, probably).

Does this trigger more often on ppc64 ELFv2, to the extend it becomes a 
quality-of-implementation issue?  I'm pretty sure the standards do not 
require a particular behavior in such cases.

-- 
Florian Weimer / Red Hat Product Security Team



More information about the Gcc mailing list