diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-09-06 00:24:17 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-11-07 09:36:32 +0100 |
commit | dcc02d3168b4457746f6ab1d8e73cf9d15c6d4e8 (patch) | |
tree | 282148096b5d2c989f7b27a041a041508b7751f4 /gcc | |
parent | 2caaa4bf336bce2a7d649aa05f2851d576a26e5e (diff) | |
download | gcc-dcc02d3168b4457746f6ab1d8e73cf9d15c6d4e8.zip gcc-dcc02d3168b4457746f6ab1d8e73cf9d15c6d4e8.tar.gz gcc-dcc02d3168b4457746f6ab1d8e73cf9d15c6d4e8.tar.bz2 |
ada: Remove redundant suppression for non-modified IN OUT parameters
Non-modified IN OUT parameters are first collected and then filtered by
examining uses of their enclosing subprograms. In this filtering we
don't need to look again at properties of the formal parameters
themselves.
Cleanup related to improved detection of references to uninitialized
objects; semantics is unaffected.
gcc/ada/
* sem_warn.adb
(No_Warn_On_In_Out): For subprograms we can simply call
Warnings_Off.
(Output_Non_Modified_In_Out_Warnings): Remove repeated
suppression.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_warn.adb | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb index 4552d90..1bfa844 100644 --- a/gcc/ada/sem_warn.adb +++ b/gcc/ada/sem_warn.adb @@ -3006,9 +3006,9 @@ package body Sem_Warn is then return True; - -- Else test warnings off + -- Else test warnings off on the subprogram - elsif Warnings_Off_Check_Spec (S) then + elsif Warnings_Off (S) then return True; -- All tests for suppressing warning failed @@ -3029,11 +3029,9 @@ package body Sem_Warn is begin -- Suppress warning in specific cases (see details in comments for - -- No_Warn_On_In_Out), or if there is a pragma Unmodified. + -- No_Warn_On_In_Out). - if Has_Pragma_Unmodified_Check_Spec (E1) - or else No_Warn_On_In_Out (E1) - then + if No_Warn_On_In_Out (E1) then null; -- Here we generate the warning |