summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/msan/msan.cc6
-rw-r--r--test/msan/vararg.cc55
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'