https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38573
--- Comment #13 from Frederic Marchal <fmarchal at perso dot be> ---
(In reply to Roland Illig from comment #12)
> (In reply to Frederic Marchal from comment #11)
> > I suspect a misunderstanding here. Forgive me if I state the obvious.
> >
> > The fix is not to move the translation mark around.
>
> I think moving the translation mark "_(...)" into each case of the switch
> statement would solve the problem, so maybe I misunderstood you here.
Ah yes, I see your point. The string literal may be translated with _() when it
is assigned to symstd_msg. It doesn't have to be translated later when
symstd_msg is assigned to symstd.
So moving _() is fine:
symstd_msg = _("available since Fortran 77");
if (symstd)
*symstd = symstd_msg;
Sorry, the misunderstanding was on my side. I was stuck with this pattern:
symstd_msg = N_("available since Fortran 77");
if (symstd)
*symstd = _(symstd_msg);