https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119684
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> fatal_insn ("operands to %T/%t must be reg + const_int:", x);
> in avr, that does
> error ("%s", _(msgid));
> so %T/%t are indeed passed through unmodified there.
Note, avr and microblaze are the only ones to use % in the fatal_insn
arguments:
config/avr/avr.cc: fatal_insn ("operands to %T/%t must be reg +
const_int:", x);
config/microblaze/microblaze.cc: fatal_insn ("PRINT_OPERAND, invalid
insn for %%C", op);
config/microblaze/microblaze.cc: fatal_insn ("PRINT_OPERAND, invalid
insn for %%N", op);
The latter will print literal %%C or %%N.
Other targets are using something like
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'e'
modifier:", x);
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'F'
modifier:", x);
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'f'
modifier:", x);
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'g'
modifier:", x);
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'L'
modifier:", x);
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'M/N'
modifier:", x);
config/frv/frv.cc: fatal_insn ("bad insn to frv_print_operand, 'O'
modifier:", x);
config/m32r/m32r.cc: fatal_insn ("bad insn for 'A'", x);
config/mmix/mmix.cc: fatal_insn ("MMIX Internal: Bad value for 'm', not a
CONST_INT",