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.

Reply via email to