diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2014-07-23 18:32:55 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2014-07-23 18:32:55 +0000 |
commit | bb7c4cb9e8f061711b833931b3f4197af5d9a090 (patch) | |
tree | 18f0f84ff0a5dcd10b6aed8960309fdce38f8de2 /test/ubsan | |
parent | 01a753c9b96979d60e5ec35e3d768d8f9b052261 (diff) | |
download | compiler-rt-bb7c4cb9e8f061711b833931b3f4197af5d9a090.tar.gz |
[UBSan] Introduce UBSAN_OPTIONS environment variable.
If UBSan is run in a standalone mode (w/o any other sanitizer), it
still uses functions from sanitizer_common, some of which depend on
the value of runtime flags. Allow to override the default values of these
flags with UBSAN_OPTIONS variable. In particular, UBSAN_OPTIONS=symbolize=0
can be used to turn off online symbolization.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@213782 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/ubsan')
-rw-r--r-- | test/ubsan/TestCases/TypeCheck/Function/function.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/test/ubsan/TestCases/TypeCheck/Function/function.cpp b/test/ubsan/TestCases/TypeCheck/Function/function.cpp index 33c2d1c7f..e2f46f2db 100644 --- a/test/ubsan/TestCases/TypeCheck/Function/function.cpp +++ b/test/ubsan/TestCases/TypeCheck/Function/function.cpp @@ -1,5 +1,7 @@ // RUN: %clangxx -fsanitize=function %s -O3 -g -o %t // RUN: %run %t 2>&1 | FileCheck %s +// Verify that we can disable symbolization if needed: +// RUN: UBSAN_OPTIONS=symbolize=0 ASAN_OPTIONS=symbolize=0 %run %t 2>&1 | FileCheck %s --check-prefix=NOSYM #include <stdint.h> @@ -9,7 +11,9 @@ void g(int x) {} int main(void) { // CHECK: runtime error: call to function f() through pointer to incorrect function type 'void (*)(int)' - // CHECK-NEXT: function.cpp:6: note: f() defined here + // CHECK-NEXT: function.cpp:8: note: f() defined here + // NOSYM: runtime error: call to function (unknown) through pointer to incorrect function type 'void (*)(int)' + // NOSYM-NEXT: ({{.*}}+0x{{.*}}): note: (unknown) defined here reinterpret_cast<void (*)(int)>(reinterpret_cast<uintptr_t>(f))(42); // CHECK-NOT: runtime error: call to function g |