[ASan] Use OS-specific matches in the malloc_context_size.cc lit test.

The top stack frames for operator new and operator delete are different on Linux and Darwin.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194150 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/asan/lit_tests/TestCases/malloc_context_size.cc b/lib/asan/lit_tests/TestCases/malloc_context_size.cc
index 7449dbe..266ce66 100644
--- a/lib/asan/lit_tests/TestCases/malloc_context_size.cc
+++ b/lib/asan/lit_tests/TestCases/malloc_context_size.cc
@@ -1,18 +1,26 @@
 // RUN: %clangxx_asan -O0 %s -o %t
-// RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=0 not %t 2>&1 | FileCheck %s
-// RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=1 not %t 2>&1 | FileCheck %s
-// RUN: ASAN_OPTIONS=malloc_context_size=1:fast_unwind_on_malloc=0 not %t 2>&1 | FileCheck %s
-// RUN: ASAN_OPTIONS=malloc_context_size=1:fast_unwind_on_malloc=1 not %t 2>&1 | FileCheck %s
+// RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=0 not %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os
+// RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=1 not %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os
+// RUN: ASAN_OPTIONS=malloc_context_size=1:fast_unwind_on_malloc=0 not %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os
+// RUN: ASAN_OPTIONS=malloc_context_size=1:fast_unwind_on_malloc=1 not %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os
 
 int main() {
   char *x = new char[20];
   delete[] x;
   return x[0];
-  // CHECK: freed by thread T{{.*}} here:
-  // CHECK-NEXT: #0 0x{{.*}} in operator delete[]
+  // We need to keep duplicate lines with different 'CHECK-%os' prefixes,
+  // otherwise FileCheck barks on missing 'CHECK-%os' before 'CHECK-%os-NEXT'.
+
+  // CHECK-Linux: freed by thread T{{.*}} here:
+  // CHECK-Linux-NEXT: #0 0x{{.*}} in operator delete[]
+  // CHECK-Darwin: freed by thread T{{.*}} here:
+  // CHECK-Darwin-NEXT: #0 0x{{.*}} in wrap__ZdaPv
   // CHECK-NOT: #1 0x{{.*}}
-  // CHECK: previously allocated by thread T{{.*}} here:
-  // CHECK-NEXT: #0 0x{{.*}} in operator new[]
+
+  // CHECK-Linux: previously allocated by thread T{{.*}} here:
+  // CHECK-Linux-NEXT: #0 0x{{.*}} in operator new[]
+  // CHECK-Darwin: previously allocated by thread T{{.*}} here:
+  // CHECK-Darwin-NEXT: #0 0x{{.*}} in wrap__Znam
   // CHECK-NOT: #1 0x{{.*}}
 
   // CHECK: SUMMARY: AddressSanitizer: heap-use-after-free