1 // RUN: %clang_cc1 -fprofile-instr-generate -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name preprocessor.c %s | FileCheck %s
2
3 // CHECK: func
func()4 void func() { // CHECK: File 0, [[@LINE]]:13 -> [[@LINE+5]]:2 = #0 (HasCodeBefore = 0)
5 int i = 0;
6 #ifdef MACRO // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+2]]:2 = 0 (HasCodeBefore = 0)
7 int x = i;
8 #endif
9 }
10
11 #if 0
12 int g = 0;
13
bar()14 void bar() { }
15 #endif
16
17 // CHECK: main
main()18 int main() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+19]]:2 = #0 (HasCodeBefore = 0)
19 int i = 0;
20 #if 0 // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+4]]:2 = 0 (HasCodeBefore = 0)
21 if(i == 0) {
22 i = 1;
23 }
24 #endif
25
26 #if 1
27 if(i == 0) { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+2]]:4 = #1 (HasCodeBefore = 0)
28 i = 1;
29 }
30 #else // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+5]]:2 = 0 (HasCodeBefore = 0)
31 if(i == 1) {
32 i = 0;
33 }
34 }
35 #endif
36 return 0;
37 }
38