From: Piotr Trojanek <troja...@adacore.com> Code cleanup; semantics is unaffected.
gcc/ada/ * sem_prag.adb (Check_In_Out_States, Check_Input_States, Check_Output_States, Check_Proof_In_States, Check_Refined_Global_List, Report_Extra_Constituents, Report_Missing_Items): Remove multiple checks for being inside an instance. (Analyze_Refined_Global_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 | 86 ++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 63 deletions(-) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index a895fd2053a..86a25dc7d0c 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -28712,16 +28712,10 @@ package body Sem_Prag is -- Start of processing for Check_In_Out_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 In_Out items of the corresponding Global pragma -- looking for a state with a visible refinement. - elsif Has_In_Out_State and then Present (In_Out_Items) then + if Has_In_Out_State and then Present (In_Out_Items) then Item_Elmt := First_Elmt (In_Out_Items); while Present (Item_Elmt) loop Item_Id := Node (Item_Elmt); @@ -28821,16 +28815,10 @@ package body Sem_Prag is -- Start of processing for Check_Input_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 Input items of the corresponding Global pragma looking -- for a state with a visible refinement. - elsif Has_In_State and then Present (In_Items) then + if Has_In_State and then Present (In_Items) then Item_Elmt := First_Elmt (In_Items); while Present (Item_Elmt) loop Item_Id := Node (Item_Elmt); @@ -28944,16 +28932,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 Output items of the corresponding Global pragma -- looking for a state with a visible refinement. - elsif Has_Out_State and then Present (Out_Items) then + if Has_Out_State and then Present (Out_Items) then Item_Elmt := First_Elmt (Out_Items); while Present (Item_Elmt) loop Item_Id := Node (Item_Elmt); @@ -29050,16 +29032,10 @@ package body Sem_Prag is -- Start of processing for Check_Proof_In_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 Proof_In items of the corresponding Global pragma -- looking for a state with a visible refinement. - elsif Has_Proof_In_State and then Present (Proof_In_Items) then + if Has_Proof_In_State and then Present (Proof_In_Items) then Item_Elmt := First_Elmt (Proof_In_Items); while Present (Item_Elmt) loop Item_Id := Node (Item_Elmt); @@ -29214,13 +29190,7 @@ package body Sem_Prag is -- Start of processing for Check_Refined_Global_List 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 Nkind (List) = N_Null then + if Nkind (List) = N_Null then null; -- Single global item declaration @@ -29465,18 +29435,10 @@ package body Sem_Prag is -- Start of processing for Report_Extra_Constituents begin - -- Do not perform this check in an instance because it was already - -- performed successfully in the generic template. - - if In_Instance then - null; - - else - Report_Extra_Constituents_In_List (In_Constits); - Report_Extra_Constituents_In_List (In_Out_Constits); - Report_Extra_Constituents_In_List (Out_Constits); - Report_Extra_Constituents_In_List (Proof_In_Constits); - end if; + Report_Extra_Constituents_In_List (In_Constits); + Report_Extra_Constituents_In_List (In_Out_Constits); + Report_Extra_Constituents_In_List (Out_Constits); + Report_Extra_Constituents_In_List (Proof_In_Constits); end Report_Extra_Constituents; -------------------------- @@ -29488,21 +29450,13 @@ package body Sem_Prag is Item_Id : Entity_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; - - else - if Present (Repeat_Items) then - Item_Elmt := First_Elmt (Repeat_Items); - while Present (Item_Elmt) loop - Item_Id := Node (Item_Elmt); - SPARK_Msg_NE ("missing global item &", N, Item_Id); - Next_Elmt (Item_Elmt); - end loop; - end if; + if Present (Repeat_Items) then + Item_Elmt := First_Elmt (Repeat_Items); + while Present (Item_Elmt) loop + Item_Id := Node (Item_Elmt); + SPARK_Msg_NE ("missing global item &", N, Item_Id); + Next_Elmt (Item_Elmt); + end loop; end if; end Report_Missing_Items; @@ -29603,6 +29557,13 @@ package body Sem_Prag is Analyze_Global_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; + -- Perform all refinement checks with respect to completeness and mode -- matching. @@ -29671,7 +29632,6 @@ package body Sem_Prag is -- in the generic template. if Serious_Errors_Detected = Errors - and then not In_Instance and then not Has_Null_State and then No_Constit then -- 2.45.1