blob: cdd448cd2090ac7edfea007d9eff9e5c0b7c3109 [file] [log] [blame]
Alex Lorenz34ac9b52014-08-19 17:32:30 +00001// 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
Justin Bogner4da909b2015-02-03 21:35:49 +00004void func() { // CHECK: File 0, [[@LINE]]:13 -> [[@LINE+5]]:2 = #0
Alex Lorenz34ac9b52014-08-19 17:32:30 +00005 int i = 0;
Justin Bogner4da909b2015-02-03 21:35:49 +00006#ifdef MACRO // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+2]]:2 = 0
Alex Lorenz34ac9b52014-08-19 17:32:30 +00007 int x = i;
8#endif
9}
10
11#if 0
12 int g = 0;
13
14 void bar() { }
15#endif
16
17 // CHECK: main
Justin Bogner91f2e3c2015-02-19 03:10:30 +000018int main() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> {{[0-9]+}}:2 = #0
Alex Lorenz34ac9b52014-08-19 17:32:30 +000019 int i = 0;
Justin Bogner4da909b2015-02-03 21:35:49 +000020#if 0 // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+4]]:2 = 0
Alex Lorenz34ac9b52014-08-19 17:32:30 +000021 if(i == 0) {
22 i = 1;
23 }
24#endif
25
26#if 1
Justin Bogner91f2e3c2015-02-19 03:10:30 +000027 // CHECK-NEXT: File 0, [[@LINE+1]]:6 -> [[@LINE+1]]:12 = #0
Justin Bogner4da909b2015-02-03 21:35:49 +000028 if(i == 0) { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+2]]:4 = #1
Alex Lorenz34ac9b52014-08-19 17:32:30 +000029 i = 1;
30 }
Justin Bogner4da909b2015-02-03 21:35:49 +000031#else // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+5]]:2 = 0
Alex Lorenz34ac9b52014-08-19 17:32:30 +000032 if(i == 1) {
33 i = 0;
34 }
35}
36#endif
37 return 0;
38}