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