From: Bob Duff Date: Sun, 14 Feb 2021 20:27:12 +0000 (-0500) Subject: [Ada] Incorrect Reinit_Field_To_Zero calls for concurrent entities X-Git-Tag: basepoints/gcc-13~6839 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40f464256cb547f8663f44965d7bb8a68527be6b;p=thirdparty%2Fgcc.git [Ada] Incorrect Reinit_Field_To_Zero calls for concurrent entities gcc/ada/ * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to Reinit_Field_To_Zero are for the correct Ekinds. --- diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 11c6fdbed6b8..03280e5244e8 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -19239,14 +19239,17 @@ package body Sem_Ch3 is Reinit_Field_To_Zero (CW_Type, Private_Dependents); elsif Ekind (CW_Type) in Concurrent_Kind then - if Ekind (CW_Type) = E_Task_Type then + Reinit_Field_To_Zero (CW_Type, First_Private_Entity); + Reinit_Field_To_Zero (CW_Type, Scope_Depth_Value); + + if Ekind (CW_Type) in Task_Kind then Reinit_Field_To_Zero (CW_Type, Is_Elaboration_Checks_OK_Id); Reinit_Field_To_Zero (CW_Type, Is_Elaboration_Warnings_OK_Id); end if; - Reinit_Field_To_Zero (CW_Type, First_Private_Entity); - Reinit_Field_To_Zero (CW_Type, Scope_Depth_Value); - Reinit_Field_To_Zero (CW_Type, SPARK_Aux_Pragma_Inherited); + if Ekind (CW_Type) in E_Task_Type | E_Protected_Type then + Reinit_Field_To_Zero (CW_Type, SPARK_Aux_Pragma_Inherited); + end if; end if; Mutate_Ekind (CW_Type, E_Class_Wide_Type);