diff options
author | Ronan Desplanques <desplanques@adacore.com> | 2024-02-14 15:12:15 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-05-14 10:19:57 +0200 |
commit | faf462cfe686228113fc9d968809dd4f40395dde (patch) | |
tree | 5cbc8183d17cdc513be815148de64e44782cafcb /gcc | |
parent | 08039257610508b153d13b6cab1f252297d143a9 (diff) | |
download | gcc-faf462cfe686228113fc9d968809dd4f40395dde.zip gcc-faf462cfe686228113fc9d968809dd4f40395dde.tar.gz gcc-faf462cfe686228113fc9d968809dd4f40395dde.tar.bz2 |
ada: Fix crash with -gnatdJ and -gnatyz
This patch makes it so -gnatyz style checks reports specify a node
ID. That is required since those checks are sometimes made during
semantic analysis of short-circuit operators, where the Current_Node
mechanism that -gnatdJ uses is not operational.
Check_Xtra_Parens_Precedence is moved from Styleg to Style to make
this possible.
gcc/ada/
* styleg.ads (Check_Xtra_Parens_Precedence): Moved ...
* style.ads (Check_Xtra_Parens_Precedence): ... here. Also
replace corresponding renaming.
* styleg.adb (Check_Xtra_Parens_Precedence): Moved ...
* style.adb (Check_Xtra_Parens_Precedence): here. Also use
Errout.Error_Msg and pass it a node parameter.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/style.adb | 22 | ||||
-rw-r--r-- | gcc/ada/style.ads | 3 | ||||
-rw-r--r-- | gcc/ada/styleg.adb | 22 | ||||
-rw-r--r-- | gcc/ada/styleg.ads | 4 |
4 files changed, 23 insertions, 28 deletions
diff --git a/gcc/ada/style.adb b/gcc/ada/style.adb index aaa668a..18b110b 100644 --- a/gcc/ada/style.adb +++ b/gcc/ada/style.adb @@ -337,6 +337,28 @@ package body Style is end if; end Check_Identifier; + ---------------------------------- + -- Check_Xtra_Parens_Precedence -- + ---------------------------------- + + procedure Check_Xtra_Parens_Precedence (N : Node_Id) is + begin + if Style_Check_Xtra_Parens_Precedence + and then + Paren_Count (N) > + (if Nkind (N) in N_Case_Expression + | N_Expression_With_Actions + | N_If_Expression + | N_Quantified_Expression + | N_Raise_Expression + then 1 + else 0) + then + Error_Msg -- CODEFIX + ("(style) redundant parentheses?z?", First_Sloc (N), N); + end if; + end Check_Xtra_Parens_Precedence; + ------------------------ -- Missing_Overriding -- ------------------------ diff --git a/gcc/ada/style.ads b/gcc/ada/style.ads index c0925e9..9614242 100644 --- a/gcc/ada/style.ads +++ b/gcc/ada/style.ads @@ -196,8 +196,7 @@ package Style is -- Called after scanning an entire expression (N) that does not require an -- extra level of parentheses. - procedure Check_Xtra_Parens_Precedence (N : Node_Id) - renames Style_Inst.Check_Xtra_Parens_Precedence; + procedure Check_Xtra_Parens_Precedence (N : Node_Id); -- Called after scanning a subexpression (N) that does not require an -- extra level of parentheses according to operator precedence rules. diff --git a/gcc/ada/styleg.adb b/gcc/ada/styleg.adb index 287589f..c405dec 100644 --- a/gcc/ada/styleg.adb +++ b/gcc/ada/styleg.adb @@ -1054,28 +1054,6 @@ package body Styleg is end if; end Check_Xtra_Parens; - ---------------------------------- - -- Check_Xtra_Parens_Precedence -- - ---------------------------------- - - procedure Check_Xtra_Parens_Precedence (N : Node_Id) is - begin - if Style_Check_Xtra_Parens_Precedence - and then - Paren_Count (N) > - (if Nkind (N) in N_Case_Expression - | N_Expression_With_Actions - | N_If_Expression - | N_Quantified_Expression - | N_Raise_Expression - then 1 - else 0) - then - Error_Msg -- CODEFIX - ("(style) redundant parentheses?z?", Errout.First_Sloc (N)); - end if; - end Check_Xtra_Parens_Precedence; - ---------------------------- -- Determine_Token_Casing -- ---------------------------- diff --git a/gcc/ada/styleg.ads b/gcc/ada/styleg.ads index 9028e85..a16ea5c 100644 --- a/gcc/ada/styleg.ads +++ b/gcc/ada/styleg.ads @@ -160,10 +160,6 @@ package Styleg is -- Called after scanning an entire expression (N) that does not require an -- extra level of parentheses. - procedure Check_Xtra_Parens_Precedence (N : Node_Id); - -- Called after scanning a subexpression (N) that does not require an - -- extra level of parentheses according to operator precedence rules. - function Mode_In_Check return Boolean; pragma Inline (Mode_In_Check); -- Determines whether style checking is active and the Mode_In_Check is |