diff options
-rw-r--r-- | lib/msan/msan.cc | 6 | ||||
-rw-r--r-- | test/msan/vararg.cc | 55 |
2 files changed, 0 insertions, 61 deletions
diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc index ba2d5d593..06bcbdf88 100644 --- a/lib/msan/msan.cc +++ b/lib/msan/msan.cc @@ -59,10 +59,6 @@ SANITIZER_INTERFACE_ATTRIBUTE ALIGNED(16) THREADLOCAL u64 __msan_va_arg_tls[kMsanParamTlsSize / sizeof(u64)]; SANITIZER_INTERFACE_ATTRIBUTE -ALIGNED(16) -THREADLOCAL u32 __msan_va_arg_origin_tls[kMsanParamTlsSize / sizeof(u32)]; - -SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL u64 __msan_va_arg_overflow_size_tls; SANITIZER_INTERFACE_ATTRIBUTE @@ -281,8 +277,6 @@ void ScopedThreadLocalStateBackup::Restore() { internal_memset(__msan_param_tls, 0, sizeof(__msan_param_tls)); internal_memset(__msan_retval_tls, 0, sizeof(__msan_retval_tls)); internal_memset(__msan_va_arg_tls, 0, sizeof(__msan_va_arg_tls)); - internal_memset(__msan_va_arg_origin_tls, 0, - sizeof(__msan_va_arg_origin_tls)); if (__msan_get_track_origins()) { internal_memset(&__msan_retval_origin_tls, 0, diff --git a/test/msan/vararg.cc b/test/msan/vararg.cc deleted file mode 100644 index efdac40a9..000000000 --- a/test/msan/vararg.cc +++ /dev/null @@ -1,55 +0,0 @@ -// RUN: %clangxx_msan -fsanitize-memory-track-origins=0 -O3 %s -o %t && \ -// RUN: not %run %t va_arg_tls >%t.out 2>&1 -// RUN: FileCheck %s --check-prefix=CHECK < %t.out - -// RUN: %clangxx_msan -fsanitize-memory-track-origins=0 -O3 %s -o %t && \ -// RUN: not %run %t overflow >%t.out 2>&1 -// RUN: FileCheck %s --check-prefix=CHECK < %t.out - -// RUN: %clangxx_msan -fsanitize-memory-track-origins=2 -O3 %s -o %t && \ -// RUN: not %run %t va_arg_tls >%t.out 2>&1 -// RUN: FileCheck %s --check-prefixes=CHECK,CHECK-ORIGIN < %t.out - -// RUN: %clangxx_msan -fsanitize-memory-track-origins=2 -O3 %s -o %t && \ -// RUN: not %run %t overflow >%t.out 2>&1 -// RUN: FileCheck %s --check-prefixes=CHECK,CHECK-ORIGIN < %t.out - -// Check that shadow and origin are passed through va_args. - -#include <stdarg.h> -#include <string.h> - -__attribute__((noinline)) -int sum(int n, ...) { - va_list args; - int i, sum = 0, arg; - volatile int temp; - va_start(args, n); - for (i = 0; i < n; i++) { - arg = va_arg(args, int); - sum += arg; - } - va_end(args); - return sum; -} - -int main(int argc, char *argv[]) { - volatile int uninit; - volatile int a = 1, b = 2; - if (argc == 2) { - // Shadow/origin will be passed via va_arg_tls/va_arg_origin_tls. - if (strcmp(argv[1], "va_arg_tls") == 0) { - return sum(3, uninit, a, b); - } - // Shadow/origin of |uninit| will be passed via overflow area. - if (strcmp(argv[1], "overflow") == 0) { - return sum(7, - a, a, a, a, a, a, uninit - ); - } - } - return 0; -} - -// CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value -// CHECK-ORIGIN: Uninitialized value was created by an allocation of 'uninit' in the stack frame of function 'main' |