From 7641e42def02f228dc9e907094353c3ac55d5226 Mon Sep 17 00:00:00 2001 From: Joachim Protze Date: Thu, 31 Mar 2022 12:31:18 -0500 Subject: [PATCH] [OpenMP][Tools] Fix handling of initial-task-end Latest OpenMP spec says parallel_data is NULL for initial/implicit-task-end. We nevertheless need to cleanup the ParallelData here, as there is no other callback for the end of the implicit parallel region. We can use the reference stored in the TaskData. Reviewed By: dreachem Differential Revision: https://reviews.llvm.org/D114005 --- openmp/tools/archer/ompt-tsan.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmp/tools/archer/ompt-tsan.cpp b/openmp/tools/archer/ompt-tsan.cpp index 7e384dd..6bd1175 100644 --- a/openmp/tools/archer/ompt-tsan.cpp +++ b/openmp/tools/archer/ompt-tsan.cpp @@ -686,10 +686,10 @@ static void ompt_tsan_implicit_task(ompt_scope_endpoint_t endpoint, #endif assert(Data->RefCount == 1 && "All tasks should have finished at the implicit barrier!"); - Data->Delete(); if (type & ompt_task_initial) { - ToParallelData(parallel_data)->Delete(); + Data->Team->Delete(); } + Data->Delete(); TsanFuncExit(); break; } -- 2.7.4