blob: 88411f3ba9162af0326da45ff9bf56f072222597 [file] [log] [blame]
Rong Xu9837ef52016-02-04 18:39:09 +00001// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macro-expansion.c %s | FileCheck %s
Justin Bognerbf42cfd2015-02-18 21:24:51 +00002
3#define LBRAC {
4#define RBRAC }
5
6// CHECK: main:
Justin Bogner91f2e3c2015-02-19 03:10:30 +00007// CHECK-NEXT: File 0, [[@LINE+1]]:40 -> {{[0-9]+}}:2 = #0
Justin Bognerbf42cfd2015-02-18 21:24:51 +00008int main(int argc, const char *argv[]) {
Justin Bogner91f2e3c2015-02-19 03:10:30 +00009 // CHECK-NEXT: File 0, [[@LINE+1]]:7 -> [[@LINE+1]]:12 = #0
Vedant Kumar2e8c8752017-11-09 02:33:38 +000010 if (!argc) {} // CHECK: File 0, [[@LINE]]:14 -> [[@LINE]]:16 = #1
Justin Bognerbf42cfd2015-02-18 21:24:51 +000011
Justin Bogner91f2e3c2015-02-19 03:10:30 +000012 // CHECK-NEXT: File 0, [[@LINE+3]]:7 -> [[@LINE+3]]:12 = #0
Justin Bognerbf42cfd2015-02-18 21:24:51 +000013 // CHECK-NEXT: Expansion,File 0, [[@LINE+2]]:14 -> [[@LINE+2]]:19 = #2
14 // CHECK-NEXT: File 0, [[@LINE+1]]:19 -> [[@LINE+4]]:8 = #2
15 if (!argc) LBRAC
16 return 0;
17 // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:8 = #2
Vedant Kumar747b0e22017-09-08 18:44:56 +000018 RBRAC // CHECK-NEXT: [[@LINE]]:8 -> [[@LINE+6]]:3 = (#0 - #2)
Justin Bognerbf42cfd2015-02-18 21:24:51 +000019
Justin Bogner91f2e3c2015-02-19 03:10:30 +000020 // CHECK-NEXT: File 0, [[@LINE+4]]:3 -> [[@LINE+15]]:2 = (#0 - #2)
21 // CHECK-NEXT: File 0, [[@LINE+3]]:7 -> [[@LINE+3]]:12 = (#0 - #2)
Justin Bognerbf42cfd2015-02-18 21:24:51 +000022 // CHECK-NEXT: Expansion,File 0, [[@LINE+2]]:14 -> [[@LINE+2]]:19 = #3
23 // CHECK-NEXT: File 0, [[@LINE+1]]:19 -> [[@LINE+3]]:4 = #3
24 if (!argc) LBRAC
25 return 0;
Vedant Kumar747b0e22017-09-08 18:44:56 +000026 } // CHECK-NEXT: [[@LINE]]:4 -> [[@LINE+5]]:3 = ((#0 - #2) - #3)
Justin Bognerbf42cfd2015-02-18 21:24:51 +000027
Justin Bogner91f2e3c2015-02-19 03:10:30 +000028 // CHECK-NEXT: File 0, [[@LINE+3]]:3 -> [[@LINE+7]]:2 = ((#0 - #2) - #3)
29 // CHECK-NEXT: File 0, [[@LINE+2]]:7 -> [[@LINE+2]]:12 = ((#0 - #2) - #3)
Vedant Kumar2e8c8752017-11-09 02:33:38 +000030 // CHECK: File 0, [[@LINE+1]]:14 -> [[@LINE+4]]:8 = #4
Justin Bognerbf42cfd2015-02-18 21:24:51 +000031 if (!argc) {
32 return 0;
33 // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:8 = #4
Vedant Kumar747b0e22017-09-08 18:44:56 +000034 RBRAC // CHECK-NEXT: [[@LINE]]:8 -> [[@LINE+1]]:2 = (((#0 - #2) - #3) - #4)
Justin Bognerbf42cfd2015-02-18 21:24:51 +000035}
36
37// CHECK-NEXT: File 1, 3:15 -> 3:16 = #2
38// CHECK-NEXT: File 2, 4:15 -> 4:16 = #2
39// CHECK-NEXT: File 3, 3:15 -> 3:16 = #3
40// CHECK-NEXT: File 4, 4:15 -> 4:16 = #4