https://gcc.gnu.org/g:7ec7b5ae9f1d9ade520bc9e658eae5f1d6e75055

commit r15-1131-g7ec7b5ae9f1d9ade520bc9e658eae5f1d6e75055
Author: Piotr Trojanek <troja...@adacore.com>
Date:   Mon Apr 8 18:00:05 2024 +0200

    ada: Refactor checks for Refined_Depends in generic instances
    
    Code cleanup; semantics is unaffected.
    
    gcc/ada/
    
            * sem_prag.adb (Check_Dependency_Clause, Check_Output_States,
            Report_Extra_Clauses): Remove multiple checks for being inside
            an instance.
            (Analyze_Refined_Depends_In_Decl_Part): Add single check for
            being inside an instance.

Diff:
---
 gcc/ada/sem_prag.adb | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 86a25dc7d0c..29f27652138 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -27650,13 +27650,6 @@ package body Sem_Prag is
       --  Start of processing for Check_Dependency_Clause
 
       begin
-         --  Do not perform this check in an instance because it was already
-         --  performed successfully in the generic template.
-
-         if In_Instance then
-            return;
-         end if;
-
          --  Examine all refinement clauses and compare them against the
          --  dependence clause.
 
@@ -27910,16 +27903,10 @@ package body Sem_Prag is
       --  Start of processing for Check_Output_States
 
       begin
-         --  Do not perform this check in an instance because it was already
-         --  performed successfully in the generic template.
-
-         if In_Instance then
-            null;
-
          --  Inspect the outputs of pragma Depends looking for a state with a
          --  visible refinement.
 
-         elsif Present (Spec_Outputs) then
+         if Present (Spec_Outputs) then
             Item_Elmt := First_Elmt (Spec_Outputs);
             while Present (Item_Elmt) loop
                Item := Node (Item_Elmt);
@@ -28261,13 +28248,7 @@ package body Sem_Prag is
          Clause : Node_Id;
 
       begin
-         --  Do not perform this check in an instance because it was already
-         --  performed successfully in the generic template.
-
-         if In_Instance then
-            null;
-
-         elsif Present (Clauses) then
+         if Present (Clauses) then
             Clause := First (Clauses);
             while Present (Clause) loop
                SPARK_Msg_N
@@ -28369,6 +28350,13 @@ package body Sem_Prag is
 
       Analyze_Depends_In_Decl_Part (N);
 
+      --  Do not perform these checks in an instance because they were already
+      --  performed successfully in the generic template.
+
+      if In_Instance then
+         goto Leave;
+      end if;
+
       --  Do not match dependencies against refinements if Refined_Depends is
       --  illegal to avoid emitting misleading error.

Reply via email to