[Openmp-commits] [openmp] 39f746d - [OpenMP][Tool] Fix memory leak and double-allocation

Joachim Protze via Openmp-commits openmp-commits at lists.llvm.org
Thu Jan 16 12:05:40 PST 2020


Author: Joachim Protze
Date: 2020-01-16T10:05:06-10:00
New Revision: 39f746d8def66ef8f5c4d3f1eb4c4cee4baac988

URL: https://github.com/llvm/llvm-project/commit/39f746d8def66ef8f5c4d3f1eb4c4cee4baac988
DIFF: https://github.com/llvm/llvm-project/commit/39f746d8def66ef8f5c4d3f1eb4c4cee4baac988.diff

LOG: [OpenMP][Tool] Fix memory leak and double-allocation

Fix the memory leak pointed out in https://reviews.llvm.org/D70412.
And a second one due to double-allocation.

Reviewed by: Hahnfeld

Differential revision: https://reviews.llvm.org/D72779

Added: 
    

Modified: 
    openmp/tools/archer/ompt-tsan.cpp

Removed: 
    


################################################################################
diff  --git a/openmp/tools/archer/ompt-tsan.cpp b/openmp/tools/archer/ompt-tsan.cpp
index 50b98e2a4851..39512d38e3c2 100644
--- a/openmp/tools/archer/ompt-tsan.cpp
+++ b/openmp/tools/archer/ompt-tsan.cpp
@@ -114,7 +114,6 @@ void __attribute__((weak)) __tsan_flush_memory() {}
 }
 #endif
 ArcherFlags *archer_flags;
-TsanFlags *tsan_flags;
 
 // The following definitions are pasted from "llvm/Support/Compiler.h" to allow
 // the code
@@ -862,10 +861,8 @@ static void ompt_tsan_mutex_released(ompt_mutex_t kind,
 static int ompt_tsan_initialize(ompt_function_lookup_t lookup,
                                 int device_num,
                                 ompt_data_t *tool_data) {
-  const char *options = getenv("ARCHER_OPTIONS");
-  archer_flags = new ArcherFlags(options);
-  options = getenv("TSAN_OPTIONS");
-  tsan_flags = new TsanFlags(options);
+  const char *options = getenv("TSAN_OPTIONS");
+  TsanFlags tsan_flags(options);
 
   ompt_set_callback_t ompt_set_callback =
       (ompt_set_callback_t)lookup("ompt_set_callback");
@@ -898,7 +895,7 @@ static int ompt_tsan_initialize(ompt_function_lookup_t lookup,
   SET_CALLBACK_T(mutex_released, mutex);
   SET_OPTIONAL_CALLBACK_T(reduction, sync_region, hasReductionCallback, ompt_set_never);
 
-  if (!tsan_flags->ignore_noninstrumented_modules)
+  if (!tsan_flags.ignore_noninstrumented_modules)
     fprintf(
         stderr,
         "Warning: please export TSAN_OPTIONS='ignore_noninstrumented_modules=1' "


        


More information about the Openmp-commits mailing list