1*673dc3d4SNico Weber // RUN: rm -rf %t-dir
2*673dc3d4SNico Weber // RUN: mkdir %t-dir && cd %t-dir
3*673dc3d4SNico Weber // RUN: %clangxx_asan -fsanitize-coverage=func %s -o test.exe
4*673dc3d4SNico Weber // RUN: %env_asan_opts=coverage=1 %run ./test.exe
5*673dc3d4SNico Weber //
6*673dc3d4SNico Weber // RUN: %sancov print *.sancov | FileCheck %s
7*673dc3d4SNico Weber #include <stdio.h>
8*673dc3d4SNico Weber 
9*673dc3d4SNico Weber void foo() { fputs("FOO", stderr); }
10*673dc3d4SNico Weber void bar() { fputs("BAR", stderr); }
11*673dc3d4SNico Weber 
12*673dc3d4SNico Weber int main(int argc, char **argv) {
13*673dc3d4SNico Weber   if (argc == 2) {
14*673dc3d4SNico Weber     foo();
15*673dc3d4SNico Weber     bar();
16*673dc3d4SNico Weber   } else {
17*673dc3d4SNico Weber     bar();
18*673dc3d4SNico Weber     foo();
19*673dc3d4SNico Weber   }
20*673dc3d4SNico Weber }
21*673dc3d4SNico Weber 
22*673dc3d4SNico Weber // CHECK: 0x{{[0-9a-f]*}}
23*673dc3d4SNico Weber // CHECK: 0x{{[0-9a-f]*}}
24*673dc3d4SNico Weber // CHECK: 0x{{[0-9a-f]*}}
25*673dc3d4SNico Weber // CHECK-NOT: 0x{{[0-9a-f]*}}
26