> Am 12.04.2024 um 09:58 schrieb Jakub Jelinek <ja...@redhat.com>:
>
> Hi!
>
> While translation of the verifier messages is questionable, that case is
> something that ideally should never happen except to gcc developers
> and so pressumably English should be fine, we use error etc. APIs and
> those imply translatations and some translators translate it.
> The following patch adjusts the code such that we don't emit
> appel returns_twice est not first dans le bloc de base 33
> in French (i.e. 2 English word in the middle of a French message).
> Similarly Swedish or Ukrainian.
> Note, the German translator did differentiate between these verifier
> messages vs. normal user facing and translated it to:
> "Interner Fehler: returns_twice call is %s in basic block %d"
> so just a German prefix before English message.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
Ok
Richard
> 2024-04-12 Jakub Jelinek <ja...@redhat.com>
>
> * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
> returns_twice diagnostics translatable.
>
> --- gcc/tree-cfg.cc.jj 2024-04-10 10:19:04.237471564 +0200
> +++ gcc/tree-cfg.cc 2024-04-11 17:18:57.962672110 +0200
> @@ -5818,7 +5818,7 @@ gimple_verify_flow_info (void)
> if (gimple_code (stmt) == GIMPLE_CALL
> && gimple_call_flags (stmt) & ECF_RETURNS_TWICE)
> {
> - const char *misplaced = NULL;
> + bool misplaced = false;
> /* TM is an exception: it points abnormal edges just after the
> call that starts a transaction, i.e. it must end the BB. */
> if (gimple_call_builtin_p (stmt, BUILT_IN_TM_START))
> @@ -5826,18 +5826,23 @@ gimple_verify_flow_info (void)
> if (single_succ_p (bb)
> && bb_has_abnormal_pred (single_succ (bb))
> && !gsi_one_nondebug_before_end_p (gsi))
> - misplaced = "not last";
> + {
> + error ("returns_twice call is not last in basic block "
> + "%d", bb->index);
> + misplaced = true;
> + }
> }
> else
> {
> - if (seen_nondebug_stmt
> - && bb_has_abnormal_pred (bb))
> - misplaced = "not first";
> + if (seen_nondebug_stmt && bb_has_abnormal_pred (bb))
> + {
> + error ("returns_twice call is not first in basic block "
> + "%d", bb->index);
> + misplaced = true;
> + }
> }
> if (misplaced)
> {
> - error ("returns_twice call is %s in basic block %d",
> - misplaced, bb->index);
> print_gimple_stmt (stderr, stmt, 0, TDF_SLIM);
> err = true;
> }
>
> Jakub
>