https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46942
Florian Weimer <fw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fw at gcc dot gnu.org --- Comment #11 from Florian Weimer <fw at gcc dot gnu.org> --- The ABI document was updated: Clarify the unspecified nature of excess bits in INTEGER type arguments <https://gitlab.com/x86-psABIs/x86-64-ABI/-/commit/e1ce098331da5dbd66e1ffc74162380bcc213236> The ABI did not previously say that the caller needs to sign-extended or zero-extend, which means that the callee has to extend. As far as I can see, both GCC and Clang generate code in some cases that assumes the callee extends.