https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120888
--- Comment #7 from jcmvbkbc at gcc dot gnu.org --- (In reply to H.J. Lu from comment #6) > You can update xtensa_promote_function_mode to control how to promote > return value. I don't think I need to change anything there because the patch that you posted promotes the return values the same way as arguments, i.e. zero extends unsigned and sign extends signed. The gfortran.dg/c_char_tests_5.f90 started failing not since the r16-170-ga670ebde3995, but right before it, since r16-169-g78db4753c964. The regression in gcc.dg/tree-ssa/pr84436-5.c has two parts. The first part is that the signed value that becomes the return value of the function foo() is not sign extended. This is not new, but it looks like a separate issue, it also wasn't sign extended before the r16-170-ga670ebde3995. The second part is that now the main() doesn't sign extend the result returned by the function foo(), exposing the first issue. I guess I should apply your fix and deal with these failures separately.