PR target/79926 notes that in: sorry ("%s instructions aren't allowed in %s service routine", isa, (cfun->machine->func_type == TYPE_EXCEPTION ? "exception" : "interrupt"));
the text from the second %s won't be translated, but should be. This patch reworks the diagnostic by breaking it out into two messages and marking them with G_() so they're seen by xgettext; a test run of xgettext confirms that both messages make it into po/gcc.pot (in an earlier version of the patch I attempted to do it without introducing a local, but xgettext only picked up on one of the strings). gcc/ChangeLog: PR target/79926 * config/i386/i386.c (ix86_set_current_function): Make "sorry" message more amenable to translation. --- gcc/config/i386/i386.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e705a3e..b8688e3 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -7271,9 +7271,15 @@ ix86_set_current_function (tree fndecl) if (isa != NULL) { if (cfun->machine->func_type != TYPE_NORMAL) - sorry ("%s instructions aren't allowed in %s service routine", - isa, (cfun->machine->func_type == TYPE_EXCEPTION - ? "exception" : "interrupt")); + { + const char *msgid + = (cfun->machine->func_type == TYPE_EXCEPTION + ? G_("%s instructions aren't allowed in" + " exception service routine") + : G_("%s instructions aren't allowed in" + " interrupt service routine")); + sorry (msgid, isa); + } else sorry ("%s instructions aren't allowed in function with " "no_caller_saved_registers attribute", isa); -- 1.8.5.3