From: Piotr Trojanek <troja...@adacore.com> 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. Tested on x86_64-pc-linux-gnu, committed on master. --- 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. -- 2.45.1