diff mbox series

[COMMITTED] ada: Fix crash with -gnatdJ and -gnatyz

Message ID 20240514082348.834038-1-poulhies@adacore.com
State New
Headers show
Series [COMMITTED] ada: Fix crash with -gnatdJ and -gnatyz | expand

Commit Message

Marc Poulhiès May 14, 2024, 8:23 a.m. UTC
From: Ronan Desplanques <desplanques@adacore.com>

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.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/style.adb  | 22 ++++++++++++++++++++++
 gcc/ada/style.ads  |  3 +--
 gcc/ada/styleg.adb | 22 ----------------------
 gcc/ada/styleg.ads |  4 ----
 4 files changed, 23 insertions(+), 28 deletions(-)
diff mbox series

Patch

diff --git a/gcc/ada/style.adb b/gcc/ada/style.adb
index aaa668aab00..18b110b911d 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 c0925e9ce34..9614242269c 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 287589f92da..c405dec2b33 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 9028e85cc4e..a16ea5c5961 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