[Ada] Do not free task for _parent
authorGhjuvan Lacambre <lacambre@adacore.com>
Tue, 16 Nov 2021 11:19:13 +0000 (12:19 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 1 Dec 2021 10:24:41 +0000 (10:24 +0000)
gcc/ada/

* exp_ch7.adb (Cleanup_Record): Don't process parent.

gcc/ada/exp_ch7.adb

index cd9ff21..68d1da9 100644 (file)
@@ -4629,8 +4629,9 @@ package body Exp_Ch7 is
 
       Comp := First_Component (U_Typ);
       while Present (Comp) loop
-         if Has_Task (Etype (Comp))
-           or else Has_Simple_Protected_Object (Etype (Comp))
+         if Chars (Comp) /= Name_uParent
+           and then (Has_Task (Etype (Comp))
+             or else Has_Simple_Protected_Object (Etype (Comp)))
          then
             Tsk :=
               Make_Selected_Component (Loc,