[Ada] Do not give warnings for compiler-generated entities by default
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 23 Mar 2022 13:46:28 +0000 (14:46 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 19 May 2022 14:05:33 +0000 (14:05 +0000)
The rationale is that these entities are almost always the result of
expansion activities in the front-end, over which the user has very
limited control.  These warnings can be restored by means of -gnatD.

gcc/ada/

* gcc-interface/utils.cc (gnat_pushdecl): Also set TREE_NO_WARNING
on the decl if Comes_From_Source is false for the associated node.

gcc/ada/gcc-interface/utils.cc

index d747c63..c583aca 100644 (file)
@@ -852,8 +852,11 @@ gnat_pushdecl (tree decl, Node_Id gnat_node)
   if (!deferred_decl_context)
     DECL_CONTEXT (decl) = context;
 
-  suppress_warning (decl, all_warnings,
-                   No (gnat_node) || Warnings_Off (gnat_node));
+  /* Disable warnings for compiler-generated entities or explicit request.  */
+  if (No (gnat_node)
+      || !Comes_From_Source (gnat_node)
+      || Warnings_Off (gnat_node))
+    suppress_warning (decl);
 
   /* Set the location of DECL and emit a declaration for it.  */
   if (Present (gnat_node) && !renaming_from_instantiation_p (gnat_node))