https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116539
Bug ID: 116539 Summary: internal compiler error: in sh_print_operand, at config/sh/sh.cc:1360 Product: gcc Version: 14.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: vegard.nossum at oracle dot com Target Milestone: --- Test case: void foo() { asm volatile (".ascii \"%d0\"" :: "i" (123)); } Built with sh gcc 14.2.0, gives the following error: during RTL pass: final <source>: In function 'foo': <source>:3:1: internal compiler error: in sh_print_operand, at config/sh/sh.cc:1360 3 | } | ^ 0x17a73f8 internal_error(char const*, ...) ???:0 0x6cb3ba fancy_abort(char const*, int, char const*) ???:0 0x94d2e1 output_operand(rtx_def*, int) ???:0 0x94dbb3 output_asm_insn(char const*, rtx_def**) ???:0 0x94f608 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Compiler returned: 1 Also see: https://godbolt.org/z/3Tfcdbd9s I'm aware "d" is probably not a valid modifier for sh, but I'm guessing a more descriptive error message would be appropriate. I discovered this completely by accident and I don't actually need a fix for this myself.