aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2022-09-06 00:24:17 +0200
committerMarc Poulhiès <poulhies@adacore.com>2022-11-07 09:36:32 +0100
commitdcc02d3168b4457746f6ab1d8e73cf9d15c6d4e8 (patch)
tree282148096b5d2c989f7b27a041a041508b7751f4 /gcc/ada
parent2caaa4bf336bce2a7d649aa05f2851d576a26e5e (diff)
downloadgcc-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/ada')
-rw-r--r--gcc/ada/sem_warn.adb10
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