[gcc r12-5672] [Ada] Do not free task for _parent

Pierre-Marie de Rodat pmderodat@gcc.gnu.org
Wed Dec 1 10:26:40 GMT 2021


https://gcc.gnu.org/g:e3102ec09c9b7e58312f3c18c841679db5778458

commit r12-5672-ge3102ec09c9b7e58312f3c18c841679db5778458
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date:   Tue Nov 16 12:19:13 2021 +0100

    [Ada] Do not free task for _parent
    
    gcc/ada/
    
            * exp_ch7.adb (Cleanup_Record): Don't process parent.

Diff:
---
 gcc/ada/exp_ch7.adb | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index cd9ff214e25..68d1da9e5cb 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -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,


More information about the Gcc-cvs mailing list