]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Do not give warnings for compiler-generated entities by default
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 23 May 2022 23:39:08 +0000 (01:39 +0200)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 6 Jul 2022 13:29:49 +0000 (13:29 +0000)
gcc/ada/

* gcc-interface/trans.cc (gnat_gimplify_expr) <SAVE_EXPR>: New case.

gcc/ada/gcc-interface/trans.cc

index f0602b824b07d5a61dc5739f39c50c10b7b13d3e..758df38c1c8c9d4fc99938d044369838ebc49f26 100644 (file)
@@ -8731,6 +8731,17 @@ gnat_gimplify_expr (tree *expr_p, gimple_seq *pre_p,
       gimplify_and_add (TREE_OPERAND (expr, 0), pre_p);
       return GS_OK;
 
+    case SAVE_EXPR:
+      op = TREE_OPERAND (expr, 0);
+
+      /* Propagate TREE_NO_WARNING from expression to temporary by using the
+        SAVE_EXPR itself as an intermediate step.  See gimplify_save_expr.  */
+      if (SAVE_EXPR_RESOLVED_P (expr))
+       TREE_NO_WARNING (op) = TREE_NO_WARNING (expr);
+      else
+       TREE_NO_WARNING (expr) = TREE_NO_WARNING (op);
+      break;
+
     case UNCONSTRAINED_ARRAY_REF:
       /* We should only do this if we are just elaborating for side effects,
         but we can't know that yet.  */