diff options
author | Kostya Serebryany <kcc@google.com> | 2013-12-04 10:44:13 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2013-12-04 10:44:13 +0000 |
commit | 0060391a63198a8d26109d6e073863d4602c45b4 (patch) | |
tree | 0537f8f5fecbdcabaafb52cfbfe25c64e375076c /compiler-rt | |
parent | 5c4269c68810d4bdda5abdc39c0ee71854c82854 (diff) | |
download | bcm5719-llvm-0060391a63198a8d26109d6e073863d4602c45b4.tar.gz bcm5719-llvm-0060391a63198a8d26109d6e073863d4602c45b4.zip |
[asan] require __i686__ for the SSE test; also make weaker claims about stack buffer overflows in another test
llvm-svn: 196373
Diffstat (limited to 'compiler-rt')
5 files changed, 28 insertions, 30 deletions
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc index 27b179e8362..0e2bf2fee8c 100644 --- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc +++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc @@ -47,8 +47,8 @@ int main(int argc, char **argv) { RecuriveFunctionWithStackFrame<1024>(10); stale_stack[100]++; // CHECK: ERROR: AddressSanitizer: stack-use-after-return on address - // CHECK: is located in stack of thread T0 at offset 132 in frame + // CHECK: is located in stack of thread T0 at offset {{116|132}} in frame // CHECK: in LeakStack(){{.*}}heavy_uar_test.cc: - // CHECK: [32, 1056) 'x' + // CHECK: [{{16|32}}, {{1040|1056}}) 'x' return 0; } diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/stack-buffer-overflow-with-position.cc b/compiler-rt/lib/asan/lit_tests/TestCases/stack-buffer-overflow-with-position.cc index 91820db0142..7fbe5c59575 100644 --- a/compiler-rt/lib/asan/lit_tests/TestCases/stack-buffer-overflow-with-position.cc +++ b/compiler-rt/lib/asan/lit_tests/TestCases/stack-buffer-overflow-with-position.cc @@ -5,15 +5,14 @@ // RUN: %t 8 // RUN: not %t 9 2>&1 | FileCheck --check-prefix=CHECK-9 %s // RUN: not %t 10 2>&1 | FileCheck --check-prefix=CHECK-10 %s +// RUN: not %t 30 2>&1 | FileCheck --check-prefix=CHECK-30 %s +// RUN: not %t 31 2>&1 | FileCheck --check-prefix=CHECK-31 %s +// RUN: not %t 41 2>&1 | FileCheck --check-prefix=CHECK-41 %s +// RUN: not %t 42 2>&1 | FileCheck --check-prefix=CHECK-42 %s // RUN: not %t 62 2>&1 | FileCheck --check-prefix=CHECK-62 %s // RUN: not %t 63 2>&1 | FileCheck --check-prefix=CHECK-63 %s -// RUN: not %t 63 2>&1 | FileCheck --check-prefix=CHECK-63 %s // RUN: not %t 73 2>&1 | FileCheck --check-prefix=CHECK-73 %s // RUN: not %t 74 2>&1 | FileCheck --check-prefix=CHECK-74 %s -// RUN: not %t 126 2>&1 | FileCheck --check-prefix=CHECK-126 %s -// RUN: not %t 127 2>&1 | FileCheck --check-prefix=CHECK-127 %s -// RUN: not %t 137 2>&1 | FileCheck --check-prefix=CHECK-137 %s -// RUN: not %t 138 2>&1 | FileCheck --check-prefix=CHECK-138 %s #include <string.h> #include <stdio.h> #include <stdlib.h> @@ -31,15 +30,15 @@ int main(int argc, char **argv) { // make sure BBB and CCC are not removed; return *(short*)(p) + BBB[argc % 2] + CCC[argc % 2]; } -// CHECK-m2: 'AAA' <== Memory access at offset 30 underflows this variable -// CHECK-m1: 'AAA' <== Memory access at offset 31 partially underflows this variable -// CHECK-9: 'AAA' <== Memory access at offset 41 partially overflows this variable -// CHECK-10: 'AAA' <== Memory access at offset 42 overflows this variable -// CHECK-62: 'BBB' <== Memory access at offset 94 underflows this variable -// CHECK-63: 'BBB' <== Memory access at offset 95 partially underflows this variable -// CHECK-73: 'BBB' <== Memory access at offset 105 partially overflows this variable -// CHECK-74: 'BBB' <== Memory access at offset 106 overflows this variable -// CHECK-126: 'CCC' <== Memory access at offset 158 underflows this variable -// CHECK-127: 'CCC' <== Memory access at offset 159 partially underflows this variable -// CHECK-137: 'CCC' <== Memory access at offset 169 partially overflows this variable -// CHECK-138: 'CCC' <== Memory access at offset 170 overflows this variable +// CHECK-m2: 'AAA' <== {{.*}}underflows this variable +// CHECK-m1: 'AAA' <== {{.*}}partially underflows this variable +// CHECK-9: 'AAA' <== {{.*}}partially overflows this variable +// CHECK-10: 'AAA' <== {{.*}}overflows this variable +// CHECK-30: 'BBB' <== {{.*}}underflows this variable +// CHECK-31: 'BBB' <== {{.*}}partially underflows this variable +// CHECK-41: 'BBB' <== {{.*}}partially overflows this variable +// CHECK-42: 'BBB' <== {{.*}}overflows this variable +// CHECK-62: 'CCC' <== {{.*}}underflows this variable +// CHECK-63: 'CCC' <== {{.*}}partially underflows this variable +// CHECK-73: 'CCC' <== {{.*}}partially overflows this variable +// CHECK-74: 'CCC' <== {{.*}}overflows this variable diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc b/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc index 5ed42a8c0c9..0b160c1bef0 100644 --- a/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc +++ b/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc @@ -51,11 +51,11 @@ void Func2(char *x) { // CHECK: WRITE of size 1 {{.*}} thread T0 // CHECK: #0{{.*}}Func2{{.*}}stack-use-after-return.cc:[[@LINE-2]] // CHECK: is located in stack of thread T0 at offset - // CHECK: 'local' <== Memory access at offset 32 is inside this variable + // CHECK: 'local' <== Memory access at offset {{16|32}} is inside this variable // THREAD: WRITE of size 1 {{.*}} thread T{{[1-9]}} // THREAD: #0{{.*}}Func2{{.*}}stack-use-after-return.cc:[[@LINE-6]] // THREAD: is located in stack of thread T{{[1-9]}} at offset - // THREAD: 'local' <== Memory access at offset 32 is inside this variable + // THREAD: 'local' <== Memory access at offset {{16|32}} is inside this variable // CHECK-20: T0: FakeStack created:{{.*}} stack_size_log: 20 // CHECK-24: T0: FakeStack created:{{.*}} stack_size_log: 24 } diff --git a/compiler-rt/lib/asan/tests/asan_test.cc b/compiler-rt/lib/asan/tests/asan_test.cc index 9ab4cb0d8a4..4db80339804 100644 --- a/compiler-rt/lib/asan/tests/asan_test.cc +++ b/compiler-rt/lib/asan/tests/asan_test.cc @@ -452,12 +452,14 @@ NOINLINE void SizedStackTest() { for (size_t i = 0; i < kSize; i++) A[i] = i; EXPECT_DEATH(A[-1] = 0, ""); - EXPECT_DEATH(A[-20] = 0, ""); - EXPECT_DEATH(A[-31] = 0, ""); + EXPECT_DEATH(A[-5] = 0, ""); + if (kSize > 16) + EXPECT_DEATH(A[-31] = 0, ""); EXPECT_DEATH(A[kSize] = 0, ""); EXPECT_DEATH(A[kSize + 1] = 0, ""); - EXPECT_DEATH(A[kSize + 10] = 0, ""); - EXPECT_DEATH(A[kSize + 31] = 0, ""); + EXPECT_DEATH(A[kSize + 5] = 0, ""); + if (kSize > 16) + EXPECT_DEATH(A[kSize + 31] = 0, ""); } TEST(AddressSanitizer, SimpleStackTest) { @@ -669,7 +671,8 @@ TEST(AddressSanitizer, ThreadStackReuseTest) { PTHREAD_JOIN(t, 0); } -#if defined(__i386__) || defined(__x86_64__) +#if defined(__i686__) || defined(__x86_64__) +#include <emmintrin.h> TEST(AddressSanitizer, Store128Test) { char *a = Ident((char*)malloc(Ident(12))); char *p = a; diff --git a/compiler-rt/lib/asan/tests/asan_test_utils.h b/compiler-rt/lib/asan/tests/asan_test_utils.h index 403773180c2..b6bf6b82066 100644 --- a/compiler-rt/lib/asan/tests/asan_test_utils.h +++ b/compiler-rt/lib/asan/tests/asan_test_utils.h @@ -41,10 +41,6 @@ #include <unistd.h> #endif -#if defined(__i386__) || defined(__x86_64__) -#include <emmintrin.h> -#endif - #ifndef __APPLE__ #include <malloc.h> #endif |