diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-06-25 14:41:57 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-06-25 14:41:57 +0000 |
commit | 8173fa9ddac4640baba1b104e90f258dd5dc02de (patch) | |
tree | f9aef676b6696ba82ff8c962323d6c3de280d867 /test/msan/chained_origin_limits.cc | |
parent | e4a250b3f0450644d680f07c9ce50ab820e2532e (diff) |
[msan] Fix bad interaction between with-calls mode and chained origin tracking.
Origin history should only be recorded for uninitialized values, because it is
meaningless otherwise. This change moves __msan_chain_origin to the runtime
library side and makes it conditional on the corresponding shadow value.
Previous code was correct, but _very_ inefficient.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@211700 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/msan/chained_origin_limits.cc')
-rw-r--r-- | test/msan/chained_origin_limits.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/msan/chained_origin_limits.cc b/test/msan/chained_origin_limits.cc index c6f8b626c..08854f25f 100644 --- a/test/msan/chained_origin_limits.cc +++ b/test/msan/chained_origin_limits.cc @@ -11,6 +11,18 @@ // RUN: MSAN_OPTIONS=origin_history_per_stack_limit=1 not %run %t >%t.out 2>&1 // RUN: FileCheck %s --check-prefix=CHECK-PER-STACK < %t.out + +// RUN: %clangxx_msan -mllvm -msan-instrumentation-with-call-threshold=0 -fsanitize-memory-track-origins=2 -m64 -O3 %s -o %t + +// RUN: MSAN_OPTIONS=origin_history_size=7 not %run %t >%t.out 2>&1 +// RUN: FileCheck %s --check-prefix=CHECK7 < %t.out + +// RUN: MSAN_OPTIONS=origin_history_size=2 not %run %t >%t.out 2>&1 +// RUN: FileCheck %s --check-prefix=CHECK2 < %t.out + +// RUN: MSAN_OPTIONS=origin_history_per_stack_limit=1 not %run %t >%t.out 2>&1 +// RUN: FileCheck %s --check-prefix=CHECK-PER-STACK < %t.out + #include <stdio.h> #include <stdlib.h> #include <string.h> |