1*67e74705SXin Li // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name test.c %s | FileCheck %s
2*67e74705SXin Li
3*67e74705SXin Li void bar();
4*67e74705SXin Li static void static_func();
5*67e74705SXin Li
6*67e74705SXin Li // CHECK: main
main()7*67e74705SXin Li int main() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+7]]:2 = #0
8*67e74705SXin Li // CHECK-NEXT: File 0, [[@LINE+1]]:18 -> [[@LINE+1]]:24 = (#0 + #1)
9*67e74705SXin Li for(int i = 0; i < 10; ++i) { // CHECK-NEXT: File 0, [[@LINE]]:26 -> [[@LINE]]:29 = #1
10*67e74705SXin Li bar(); // CHECK-NEXT: File 0, [[@LINE-1]]:31 -> [[@LINE+1]]:4 = #1
11*67e74705SXin Li }
12*67e74705SXin Li static_func();
13*67e74705SXin Li return 0;
14*67e74705SXin Li }
15*67e74705SXin Li
16*67e74705SXin Li // CHECK-NEXT: foo
foo()17*67e74705SXin Li void foo() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+5]]:2 = #0
18*67e74705SXin Li // CHECK-NEXT: File 0, [[@LINE+1]]:6 -> [[@LINE+1]]:7 = #0
19*67e74705SXin Li if(1) { // CHECK-NEXT: File 0, [[@LINE]]:9 -> [[@LINE+2]]:4 = #1
20*67e74705SXin Li int i = 0;
21*67e74705SXin Li }
22*67e74705SXin Li }
23*67e74705SXin Li
24*67e74705SXin Li // CHECK-NEXT: bar
bar()25*67e74705SXin Li void bar() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+1]]:2 = #0
26*67e74705SXin Li }
27*67e74705SXin Li
28*67e74705SXin Li // CHECK-NEXT: static_func
static_func()29*67e74705SXin Li void static_func() { } // CHECK: File 0, [[@LINE]]:20 -> [[@LINE]]:23 = #0
30*67e74705SXin Li
31*67e74705SXin Li // CHECK-NEXT: func
func()32*67e74705SXin Li static void func() { } // CHECK: File 0, [[@LINE]]:20 -> [[@LINE]]:23 = 0
33