http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-26 11:33:15 UTC --- On the other hand we do have a mismatch between caller and callee, for C at least: short barshort (short a) { return a; } short foo1short (short a) { return barshort(a); } ;; Function barshort (null) ;; enabled by -tree-original { return a; } ;; Function foo1short (null) ;; enabled by -tree-original { return barshort ((int) a); } this at least makes us need to "fixup" arguments during inlining which should not be necessary with a consistent IL (also see the DECL_ARG_TYPE wart we have ... in this case it says 'int' for 'a').