aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface')
-rw-r--r--gcc/ada/gcc-interface/utils.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/gcc-interface/utils.cc b/gcc/ada/gcc-interface/utils.cc
index d747c63..c583aca 100644
--- a/gcc/ada/gcc-interface/utils.cc
+++ b/gcc/ada/gcc-interface/utils.cc
@@ -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))