http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46208
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot | |gnu.org --- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2010-10-28 10:57:12 UTC --- > we modified the function *TARGET_PROMOTE_PROTOTYPES > *(http://goo.gl/2pQQ) and set it to the default value which is FALSE. > > static bool > sparc_promote_prototypes (const_tree fntype ATTRIBUTE_UNUSED) > { > return TARGET_ARCH32 ? true : false; > } > > was replaced by > > static bool > sparc_promote_prototypes (const_tree fntype ATTRIBUTE_UNUSED) > { > return false; > } This will result in violations of the ABI without further changes (garbage in the upper part of the argument registers). You need the patch I'm about to attach as a minimum, but it cannot eliminate the extensions in the caller alone, more work is required in the back-end. At which point changing TARGET_PROMOTE_PROTOTYPES will probably have only a marginal effect.