]> git.proxmox.com Git - rustc.git/blobdiff - src/compiler-rt/test/asan/TestCases/null_deref.cc
Imported Upstream version 1.6.0+dfsg1
[rustc.git] / src / compiler-rt / test / asan / TestCases / null_deref.cc
index e80657f27161a36f6a7acd24daa3fa556fc4b65b..04576b40eb2408ff96e24a1f6ab7a41be9dc2118 100644 (file)
@@ -1,19 +1,24 @@
-// RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK
-// RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK
-// RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK
-// RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK
+// RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s
 
 __attribute__((noinline))
-static void NullDeref(int *ptr) {
-  // CHECK: ERROR: AddressSanitizer: SEGV on unknown address
+// FIXME: Static symbols don't show up in PDBs. We can remove this once we start
+// using DWARF.
+#ifndef _MSC_VER
+static
+#endif
+void NullDeref(int *ptr) {
+  // CHECK: ERROR: AddressSanitizer: {{SEGV|access-violation}} on unknown address
   // CHECK:   {{0x0*000.. .*pc 0x.*}}
   ptr[10]++;  // BOOM
-  // atos on Mac cannot extract the symbol name correctly.
-  // CHECK-Linux: {{    #0 0x.* in NullDeref.*null_deref.cc:}}[[@LINE-2]]
-  // CHECK-Darwin: {{    #0 0x.* in .*NullDeref.*null_deref.cc:}}[[@LINE-3]]
+  // atos on Mac cannot extract the symbol name correctly. Also, on FreeBSD 9.2
+  // the demangling function rejects local names with 'L' in front of them.
+  // CHECK: {{    #0 0x.* in .*NullDeref.*null_deref.cc:}}[[@LINE-3]]
 }
 int main() {
   NullDeref((int*)0);
   // CHECK: {{    #1 0x.* in main.*null_deref.cc:}}[[@LINE-1]]
-  // CHECK: {{AddressSanitizer can not provide additional info.}}
+  // CHECK: AddressSanitizer can not provide additional info.
 }