2 // RUN: %clangxx_asan -O0 -g %s -o %t.executable
4 // Deliberately don't produce the module map and then check that offline symbolization fails
5 // when we try to look for it.
6 // RUN: %env_asan_opts="symbolize=0,print_module_map=0" not %run %t.executable > %t_no_module_map.log 2>&1
7 // RUN: not %asan_symbolize --module-map %t_no_module_map.log --force-system-symbolizer < %t_no_module_map.log 2>&1 | FileCheck -check-prefix=CHECK-NO-MM %s
8 // CHECK-NO-MM: ERROR:{{.*}} Failed to find module map
10 // Now produce the module map and check we can symbolize.
11 // RUN: %env_asan_opts="symbolize=0,print_module_map=2" not %run %t.executable > %t_with_module_map.log 2>&1
12 // RUN: %asan_symbolize --module-map %t_with_module_map.log --force-system-symbolizer < %t_with_module_map.log 2>&1 | FileCheck -check-prefix=CHECK-MM %s
16 // CHECK-MM: WRITE of size 4
18 extern "C" void foo(int* a
) {
19 // CHECK-MM: #0 0x{{.+}} in foo {{.*}}asan-symbolize-with-module-map.cpp:[[@LINE+1]]
24 int* a
= (int*) malloc(sizeof(int));
28 // CHECK-MM: #1 0x{{.+}} in main {{.*}}asan-symbolize-with-module-map.cpp:[[@LINE+1]]