aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2025-01-07 10:42:35 +0100
committerMarc Poulhiès <dkm@gcc.gnu.org>2025-01-13 11:52:58 +0100
commitef4448e0a0508db63581c27238d39e634268b5a2 (patch)
tree5911ebc8530d2f65c6a14b6aa39d785ee1240895 /gcc
parentc6989fbbf2f195e874245409635a856d74bf6945 (diff)
downloadgcc-ef4448e0a0508db63581c27238d39e634268b5a2.zip
gcc-ef4448e0a0508db63581c27238d39e634268b5a2.tar.gz
gcc-ef4448e0a0508db63581c27238d39e634268b5a2.tar.bz2
ada: Fix spurious warning about redundant parentheses in range bound
Use the same logic for warning about redundant parentheses in lower and upper bounds of a discrete range. This fixes a spurious warning that, if followed, would render the code illegal. gcc/ada/ChangeLog: * par-ch3.adb (P_Discrete_Range): Detect redundant parentheses in the lower bound like in the upper bound.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/par-ch3.adb16
1 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ada/par-ch3.adb b/gcc/ada/par-ch3.adb
index e58e2a2..fe727d7 100644
--- a/gcc/ada/par-ch3.adb
+++ b/gcc/ada/par-ch3.adb
@@ -3061,7 +3061,16 @@ package body Ch3 is
Range_Node := New_Node (N_Range, Token_Ptr);
Set_Low_Bound (Range_Node, Expr_Node);
- if Style_Check then
+ -- If the bound doesn't require parentheses, then emit a style
+ -- check. Parentheses that change an "expression" syntax node into a
+ -- "simple expression" are required; we filter those nodes both here
+ -- and inside Check_Xtra_Parens itself.
+
+ if Style_Check
+ and then Nkind (Expr_Node) not in N_Membership_Test
+ | N_Op_Boolean
+ | N_Short_Circuit
+ then
Style.Check_Xtra_Parens (Expr_Node);
end if;
@@ -3070,10 +3079,7 @@ package body Ch3 is
Check_Simple_Expression (Expr_Node);
Set_High_Bound (Range_Node, Expr_Node);
- -- If the upper bound doesn't require parentheses, then emit a style
- -- check. Parentheses that make "expression" syntax nodes a "simple
- -- expression" are required; we filter those nodes both here and
- -- inside Check_Xtra_Parens itself.
+ -- Check for extra parentheses like for the lower bound
if Style_Check
and then Nkind (Expr_Node) not in N_Membership_Test