diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2025-01-03 16:02:01 +0100 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2025-01-13 11:52:57 +0100 |
commit | 518fd9e9b18913997b9ed8120d2a85c7bd3528f9 (patch) | |
tree | db31b1660cc5747ec63bc19ac20e48a427c23247 | |
parent | d2e3635aa1820346050b85009df82a60cdd8206f (diff) | |
download | gcc-518fd9e9b18913997b9ed8120d2a85c7bd3528f9.zip gcc-518fd9e9b18913997b9ed8120d2a85c7bd3528f9.tar.gz gcc-518fd9e9b18913997b9ed8120d2a85c7bd3528f9.tar.bz2 |
ada: Warn about redundant parentheses in upper range bounds
Fix a glitch in condition that effectively caused detection of redundant
parentheses in upper range bounds to be dead code.
gcc/ada/ChangeLog:
* par-ch3.adb (P_Discrete_Range): Replace N_Subexpr, which was catching
all subexpressions, with kinds that catch nodes that require
parentheses to become "simple expressions".
-rw-r--r-- | gcc/ada/par-ch3.adb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ada/par-ch3.adb b/gcc/ada/par-ch3.adb index edea678..e58e2a2 100644 --- a/gcc/ada/par-ch3.adb +++ b/gcc/ada/par-ch3.adb @@ -3070,11 +3070,15 @@ package body Ch3 is Check_Simple_Expression (Expr_Node); Set_High_Bound (Range_Node, Expr_Node); - -- If Expr_Node (ignoring parentheses) is not a simple expression - -- then emit a style check. + -- 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. if Style_Check - and then Nkind (Expr_Node) not in N_Op_Boolean | N_Subexpr + 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; |