Fixed memory leak mistakenly introduced by https://reviews.llvm.org/D23115
authorAndrey Churbanov <Andrey.Churbanov@intel.com>
Thu, 20 Oct 2016 17:14:17 +0000 (17:14 +0000)
committerAndrey Churbanov <Andrey.Churbanov@intel.com>
Thu, 20 Oct 2016 17:14:17 +0000 (17:14 +0000)
Differential Revision: http://reviews.llvm.org/D25510

llvm-svn: 284747

openmp/runtime/src/kmp_tasking.c

index 7a74267..60efc1d 100644 (file)
@@ -579,9 +579,11 @@ __kmp_free_task_and_ancestors( kmp_int32 gtid, kmp_taskdata_t * taskdata, kmp_in
 #if OMP_45_ENABLED
     // Proxy tasks must always be allowed to free their parents
     // because they can be run in background even in serial mode.
-    kmp_int32 task_serial = taskdata->td_flags.task_serial && !taskdata->td_flags.proxy;
+    kmp_int32 team_serial = ( taskdata->td_flags.team_serial ||
+        taskdata->td_flags.tasking_ser ) && !taskdata->td_flags.proxy;
 #else
-    kmp_int32 task_serial = taskdata->td_flags.task_serial;
+    kmp_int32 team_serial = taskdata->td_flags.team_serial ||
+        taskdata->td_flags.tasking_ser;
 #endif
     KMP_DEBUG_ASSERT( taskdata -> td_flags.tasktype == TASK_EXPLICIT );
 
@@ -603,7 +605,7 @@ __kmp_free_task_and_ancestors( kmp_int32 gtid, kmp_taskdata_t * taskdata, kmp_in
 
         // Stop checking ancestors at implicit task
         // instead of walking up ancestor tree to avoid premature deallocation of ancestors.
-        if ( task_serial || taskdata -> td_flags.tasktype == TASK_IMPLICIT )
+        if ( team_serial || taskdata -> td_flags.tasktype == TASK_IMPLICIT )
             return;
 
         // Predecrement simulated by "- 1" calculation