https://gcc.gnu.org/g:8c6f13d2cc1884921e7c532e03786f0344bededd

commit r14-9934-g8c6f13d2cc1884921e7c532e03786f0344bededd
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Apr 12 11:00:43 2024 +0200

    tree-cfg: Make the verifier returns_twice message translatable
    
    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.
    
    2024-04-12  Jakub Jelinek  <ja...@redhat.com>
    
            * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
            returns_twice diagnostics translatable.

Diff:
---
 gcc/tree-cfg.cc | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc
index 96686db8ed3..d98b68d6787 100644
--- a/gcc/tree-cfg.cc
+++ b/gcc/tree-cfg.cc
@@ -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;
                }

Reply via email to