> Unfortunately the proposed patch fails the testcase from PR41993: > > --cut here-- > short retframe_short (void *rframe) > { > __builtin_return (rframe); > }
OK, so that's not only an issue with the mode of the return register, but with the return register itself. Then the original patch is OK if the comment is reworked, something like: /* __builtin_return emits a sequence of loads to all return registers. One of them might require another mode than MODE_EXIT, even if it is unrelated to the return value, so we want to put the final mode switch after it. */ -- Eric Botcazou