summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2012-05-24 09:24:45 +0000
committerDmitry Vyukov <dvyukov@google.com>2012-05-24 09:24:45 +0000
commit65c21a5e6dfd8bf6eaa8636ef614188e033627a0 (patch)
tree134be8fbc319125bbc5a5ae19c1342dcafa7d99e
parent26dcb95dfcf4c0e70b9d1b63b168df27a25c9de1 (diff)
downloadbcm5719-llvm-65c21a5e6dfd8bf6eaa8636ef614188e033627a0.tar.gz
bcm5719-llvm-65c21a5e6dfd8bf6eaa8636ef614188e033627a0.zip
tsan: add a flag to control RunningOnValgrind() return value
llvm-svn: 157383
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_flags.cc2
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_flags.h2
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc2
3 files changed, 5 insertions, 1 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_flags.cc b/compiler-rt/lib/tsan/rtl/tsan_flags.cc
index b7f604ac06e..24398872b97 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_flags.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_flags.cc
@@ -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);
diff --git a/compiler-rt/lib/tsan/rtl/tsan_flags.h b/compiler-rt/lib/tsan/rtl/tsan_flags.h
index dea01417ffe..6c516ed0b22 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_flags.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_flags.h
@@ -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();
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc b/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc
index c68e1d51a07..a04a207b5fe 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc
@@ -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) {
OpenPOWER on IntegriCloud