diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-05-31 12:04:29 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-05-31 12:04:29 +0000 |
commit | 7ae921dbec5db9823c89fa736b2a4c3afe163e4f (patch) | |
tree | a545dc6200e455e550169cc541e9795e01e22e9a /test/Instrumentation | |
parent | 43887bf3e62daab1c8571be8a73741c9275f866a (diff) | |
download | external_llvm-7ae921dbec5db9823c89fa736b2a4c3afe163e4f.zip external_llvm-7ae921dbec5db9823c89fa736b2a4c3afe163e4f.tar.gz external_llvm-7ae921dbec5db9823c89fa736b2a4c3afe163e4f.tar.bz2 |
[msan] Handle mixed track-origins and keep-going settings (llvm part).
Before this change, each module defined a weak_odr global __msan_track_origins
with a value of 1 if origin tracking is enabled, 0 if disabled. If there are
modules with different values, any of them may win. If 0 wins, and there is at
least one module with 1, the program will most likely crash.
With this change, __msan_track_origins is only emitted if origin tracking is
on. Then runtime library detects if there is at least one module with origin
tracking, and enables runtime support for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182997 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Instrumentation')
-rw-r--r-- | test/Instrumentation/MemorySanitizer/msan_basic.ll | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/test/Instrumentation/MemorySanitizer/msan_basic.ll b/test/Instrumentation/MemorySanitizer/msan_basic.ll index 433b8ba..3a8092b 100644 --- a/test/Instrumentation/MemorySanitizer/msan_basic.ll +++ b/test/Instrumentation/MemorySanitizer/msan_basic.ll @@ -10,8 +10,9 @@ target triple = "x86_64-unknown-linux-gnu" ; Check the presence and the linkage type of __msan_track_origins and ; other interface symbols. -; CHECK: @__msan_track_origins = weak_odr constant i32 0 -; CHECK: @__msan_keep_going = weak_odr constant i32 0 +; CHECK-NOT: @__msan_track_origins +; CHECK-ORIGINS: @__msan_track_origins = weak_odr constant i32 1 +; CHECK-NOT: @__msan_keep_going = weak_odr constant i32 0 ; CHECK: @__msan_retval_tls = external thread_local(initialexec) global [{{.*}}] ; CHECK: @__msan_retval_origin_tls = external thread_local(initialexec) global i32 ; CHECK: @__msan_param_tls = external thread_local(initialexec) global [{{.*}}] |