[PATCH][C/C++] Do not promote return arguments

Paolo Bonzini bonzini@gnu.org
Mon Aug 6 15:08:00 GMT 2007


> I don't think it breaks any standard C/C++ code, but the ABI allows
> C/C++ code to be called from assembler (and other languages) and
> defines how return values should be promoted.  It's quite proper for
> assembly code to assume that return values are promoted according to
> their type, and this is where the libffi breakage came from.
> 
> Also, non-portable C/C++code that assumes that short and char values
> will be promoted to ints will be broken by this change.  Sure, it's
> nonstandard C/C++ code, but according to the ABI it shouldn't break.
> We don't know how much code of this kind there is.

I agree with Andrew, but OTOH I think that this is an i386 backend bug, 
previously masked by the C++ front-end.

Paolo



More information about the Gcc-patches mailing list