tsan: add a flag to control RunningOnValgrind() return value
authorDmitry Vyukov <dvyukov@google.com>
Thu, 24 May 2012 09:24:45 +0000 (09:24 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Thu, 24 May 2012 09:24:45 +0000 (09:24 +0000)
llvm-svn: 157383

compiler-rt/lib/tsan/rtl/tsan_flags.cc
compiler-rt/lib/tsan/rtl/tsan_flags.h
compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc

index b7f604a..2439887 100644 (file)
@@ -49,6 +49,8 @@ void InitializeFlags(Flags *f, const char *env) {
   f->profile_memory = "";
   f->flush_memory_ms = 0;
   f->stop_on_start = false;
+  f->running_on_valgrind = false;
+
 
   // Let a frontend override.
   OverrideFlags(f);
index dea0141..6c516ed 100644 (file)
@@ -52,6 +52,8 @@ struct Flags {
   int flush_memory_ms;
   // Stops on start until __tsan_resume() is called (for debugging).
   bool stop_on_start;
+  // Controls whether RunningOnValgrind() returns true or false.
+  bool running_on_valgrind;
 };
 
 Flags *flags();
index c68e1d5..a04a207 100644 (file)
@@ -332,7 +332,7 @@ void WTFAnnotateBenignRaceSized(char *f, int l, uptr mem, uptr sz, char *desc) {
 }
 
 int RunningOnValgrind() {
-  return 0;
+  return flags()->running_on_valgrind;
 }
 
 double __attribute__((weak)) ValgrindSlowdown(void) {