diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2025-01-07 10:42:35 +0100 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2025-01-13 11:52:58 +0100 |
commit | ef4448e0a0508db63581c27238d39e634268b5a2 (patch) | |
tree | 5911ebc8530d2f65c6a14b6aa39d785ee1240895 | |
parent | c6989fbbf2f195e874245409635a856d74bf6945 (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/ada/par-ch3.adb | 16 |
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 |