https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116953
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2024-10-21
Ever confirmed|0 |1
Resolution|FIXED |---
Status|RESOLVED |REOPENED
--- Comment #4 from Georg-Johann Lay <gjl at gcc dot gnu.org> ---
Reopened: The applied fix is incomplete because avr_out_sbxx_branch() is
returning insn output template code that refers to recod_data by means of
%-operands:
if (long_jump)
return ("rjmp .+4" CR_TAB
"jmp %x3");
if (!reverse)
return "rjmp %x3";
return "";
}
Unfortunately I don't have a test case; I stumbled upon this when working on
some feature patch.
One possible fix would be to re-extract insn by means of calling extract_insn()
prior to the sequence from above.
A different approach is to output_asm_insn() instead of returning template
code.