diff mbox series

[2/13] v2 Use new per-location warning APIs in Ada.

Message ID 061e2fba-9222-2369-a5ef-2dd11c4a2fc0@gmail.com
State New
Headers show
Series v2 warning control by group and location (PR 74765) | expand

Commit Message

Martin Sebor June 4, 2021, 9:41 p.m. UTC
The attached patch replaces the uses of TREE_NO_WARNING in the Ada front
end with the new suppress_warning(), warning_suppressed_p(), and
copy_warning() APIs.

Comments

Jeff Law June 24, 2021, 5:07 a.m. UTC | #1
On 6/4/2021 3:41 PM, Martin Sebor via Gcc-patches wrote:
> The attached patch replaces the uses of TREE_NO_WARNING in the Ada front
> end with the new suppress_warning(), warning_suppressed_p(), and
> copy_warning() APIs.
>
> gcc-no-warning-ada.diff
>
> Add support for per-location warning groups.
>
> gcc/ada/ChangeLog:
>
> 	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
> 	Replace TREE_NO_WARNING with suppress_warning.
> 	(gnat_gimplify_expr): Same.
> 	* gcc-interface/utils.c (gnat_pushdecl): Same.
OK once prereqs are approved.
jeff
Martin Sebor June 28, 2021, 9:20 p.m. UTC | #2
On 6/23/21 11:07 PM, Jeff Law wrote:
> 
> 
> On 6/4/2021 3:41 PM, Martin Sebor via Gcc-patches wrote:
>> The attached patch replaces the uses of TREE_NO_WARNING in the Ada front
>> end with the new suppress_warning(), warning_suppressed_p(), and
>> copy_warning() APIs.
>>
>> gcc-no-warning-ada.diff
>>
>> Add support for per-location warning groups.
>>
>> gcc/ada/ChangeLog:
>>
>> 	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
>> 	Replace TREE_NO_WARNING with suppress_warning.
>> 	(gnat_gimplify_expr): Same.
>> 	* gcc-interface/utils.c (gnat_pushdecl): Same.
> OK once prereqs are approved.
> jeff
> 

Pushed in r12-1857.

Martin
diff mbox series

Patch

Add support for per-location warning groups.

gcc/ada/ChangeLog:

	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
	Replace TREE_NO_WARNING with suppress_warning.
	(gnat_gimplify_expr): Same.
	* gcc-interface/utils.c (gnat_pushdecl): Same.

diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index ee014a35cc2..949b7733766 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -5363,7 +5363,7 @@  Handled_Sequence_Of_Statements_to_gnu (Node_Id gnat_node)
 	 because of the unstructured form of EH used by fe_sjlj_eh, there
 	 might be forward edges going to __builtin_setjmp receivers on which
 	 it is uninitialized, although they will never be actually taken.  */
-      TREE_NO_WARNING (gnu_jmpsave_decl) = 1;
+      suppress_warning (gnu_jmpsave_decl, OPT_Wuninitialized);
       gnu_jmpbuf_decl
 	= create_var_decl (get_identifier ("JMP_BUF"), NULL_TREE,
 			   jmpbuf_type,
@@ -8805,7 +8805,7 @@  gnat_gimplify_expr (tree *expr_p, gimple_seq *pre_p,
       else
 	{
 	  *expr_p = create_tmp_var (type, NULL);
-	  TREE_NO_WARNING (*expr_p) = 1;
+	  suppress_warning (*expr_p);
 	}
 
       gimplify_and_add (TREE_OPERAND (expr, 0), pre_p);
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 1786fbf8186..982274c6d77 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -836,7 +836,8 @@  gnat_pushdecl (tree decl, Node_Id gnat_node)
   if (!deferred_decl_context)
     DECL_CONTEXT (decl) = context;
 
-  TREE_NO_WARNING (decl) = (No (gnat_node) || Warnings_Off (gnat_node));
+  suppress_warning (decl, all_warnings,
+		    No (gnat_node) || Warnings_Off (gnat_node));
 
   /* Set the location of DECL and emit a declaration for it.  */
   if (Present (gnat_node) && !renaming_from_instantiation_p (gnat_node))