https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65010
--- Comment #7 from Martin Sebor <msebor at gcc dot gnu.org> --- (In reply to David Edelsohn from comment #6) > This is not the same. There is a difference between sign extension of > arguments and sign extensions within a function. This bug points out that values returned from functions are subject to unnecessary sign extension. Bug 23450 covers this case as well: its subject is "local functions should not sign extend results (and arguments)..." and the test case shows that the return register is undergoing sign extension, exactly as in this bug.