> 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; > } As mentioned in the PR, this will result in ABI violations. But, in fact, this is already visible in the modified assembly code: > 000102b4 <main>: > 102b4: 9d e3 bf 98 save %sp, -104, %sp > 102b8: 82 10 20 01 mov 1, %g1 > 102bc: c2 37 bf fc sth %g1, [ %fp + -4 ] > 102c0: c2 2f bf ff stb %g1, [ %fp + -1 ] > 102c4: c2 2f bf fe stb %g1, [ %fp + -2 ] > 102c8: d0 0f bf ff ldub [ %fp + -1 ], %o0 > 102cc: d2 17 bf fc lduh [ %fp + -4 ], %o1 > 102d0: 7f ff ff df call 1024c <somme> > 102d4: 01 00 00 00 nop The ABI says that %o1 should be sign-extended since it's for a 'short'. It is now zero-extended, so this isn't conforming. -- Eric Botcazou