[compiler-rt] r307345 - Revert r307342, r307343.

Evgeniy Stepanov via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 6 18:31:23 PDT 2017


Author: eugenis
Date: Thu Jul  6 18:31:23 2017
New Revision: 307345

URL: http://llvm.org/viewvc/llvm-project?rev=307345&view=rev
Log:
Revert r307342, r307343.

Revert "Copy arguments passed by value into explicit allocas for ASan."
Revert "[asan] Add end-to-end tests for overflows of byval arguments."

Build failure on lldb-x86_64-ubuntu-14.04-buildserver.
Test failure on clang-cmake-aarch64-42vma and sanitizer-x86_64-linux-android.

Removed:
    compiler-rt/trunk/test/asan/TestCases/pass-object-byval.cc
    compiler-rt/trunk/test/asan/TestCases/pass-struct-byval-uar.cc
    compiler-rt/trunk/test/asan/TestCases/pass-struct-byval.cc

Removed: compiler-rt/trunk/test/asan/TestCases/pass-object-byval.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/pass-object-byval.cc?rev=307344&view=auto
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/pass-object-byval.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/pass-object-byval.cc (removed)
@@ -1,36 +0,0 @@
-// Verify that objects passed by value get red zones and that the copy
-// constructor is called.
-// RUN: %clangxx_asan -O0 %s -o %t
-// RUN: not %run %t 2>&1 | FileCheck %s --implicit-check-not \
-// RUN:     Assertion{{.*}}failed
-#include <cassert>
-
-class A {
- public:
-  A() : me(this) {}
-  A(const A &other) : me(this) {
-    for (int i = 0; i < 8; ++i) a[i] = other.a[i];
-  }
-
-  int a[8];
-  A *me;
-};
-
-int bar(A *a) {
-  int *volatile ptr = &a->a[0];
-  return *(ptr - 1);
-}
-
-void foo(A a) {
-  assert(a.me == &a);
-  bar(&a);
-}
-
-int main() {
-  A a;
-  foo(a);
-}
-
-// CHECK: ERROR: AddressSanitizer: stack-buffer-overflow
-// CHECK: READ of size 4 at
-// CHECK: is located in stack of thread

Removed: compiler-rt/trunk/test/asan/TestCases/pass-struct-byval-uar.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/pass-struct-byval-uar.cc?rev=307344&view=auto
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/pass-struct-byval-uar.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/pass-struct-byval-uar.cc (removed)
@@ -1,32 +0,0 @@
-// Test that use-after-return works with arguments passed by value.
-// RUN: %clangxx_asan -O0 %s -o %t
-// RUN: %env_asan_opts=detect_stack_use_after_return=0 %run %t 2>&1 | \
-// RUN:     FileCheck --check-prefix=CHECK-NO-UAR %s
-// RUN: not %env_asan_opts=detect_stack_use_after_return=1 %run %t 2>&1 | \
-// RUN:     FileCheck --check-prefix=CHECK-UAR %s
-
-#include <cstdio>
-
-struct A {
-  int a[8];
-};
-
-A *foo(A a) {
-  return &a;
-}
-
-int main() {
-  A *a = foo(A());
-  a->a[0] = 7;
-  std::fprintf(stderr, "\n");  // Ensures some output is generated for FileCheck
-                               // to verify in the case where UAR is not
-                               // detected.
-}
-
-// CHECK-NO-UAR-NOT: ERROR: AddressSanitizer: stack-use-after-return
-// CHECK-NO-UAR-NOT: WRITE of size 4 at
-// CHECK-NO-UAR-NOT: Memory access at offset {{[0-9]+}} is inside this variable
-//
-// CHECK-UAR: ERROR: AddressSanitizer: stack-use-after-return
-// CHECK-UAR: WRITE of size 4 at
-// CHECK-UAR: Memory access at offset {{[0-9]+}} is inside this variable

Removed: compiler-rt/trunk/test/asan/TestCases/pass-struct-byval.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/pass-struct-byval.cc?rev=307344&view=auto
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/pass-struct-byval.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/pass-struct-byval.cc (removed)
@@ -1,23 +0,0 @@
-// RUN: %clangxx_asan -O0 %s -o %t
-// RUN: not %run %t 2>&1 | FileCheck %s
-
-struct A {
-  int a[8];
-};
-
-int bar(A *a) {
-  int *volatile ptr = &a->a[0];
-  return *(ptr - 1);
-}
-
-void foo(A a) {
-  bar(&a);
-}
-
-int main() {
-  foo(A());
-}
-
-// CHECK: ERROR: AddressSanitizer: stack-buffer-underflow
-// CHECK: READ of size 4 at
-// CHECK: is located in stack of thread




More information about the llvm-commits mailing list