Rong Xu | 9837ef5 | 2016-02-04 18:39:09 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macros.c %s | FileCheck %s |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 2 | |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 3 | #define MACRO return; bar() |
| 4 | #define MACRO_2 bar() |
| 5 | #define MACRO_1 return; MACRO_2 |
Igor Kudrin | fc05ee3 | 2016-08-31 07:04:16 +0000 | [diff] [blame] | 6 | #define MACRO_3 MACRO_2 |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 7 | |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 8 | void bar() {} |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 9 | |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 10 | // CHECK: func |
| 11 | void func() { // CHECK-NEXT: File 0, [[@LINE]]:13 -> [[@LINE+5]]:2 = #0 |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 12 | int i = 0; |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 13 | // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:8 = #0 |
| 14 | MACRO; // CHECK-NEXT: File 0, [[@LINE]]:8 -> [[@LINE+2]]:2 = 0 |
| 15 | i = 2; |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 16 | } |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 17 | // CHECK-NEXT: File 1, 3:15 -> 3:28 = #0 |
| 18 | // CHECK-NEXT: File 1, 3:23 -> 3:28 = 0 |
Alex Lorenz | 34ac9b5 | 2014-08-19 17:32:30 +0000 | [diff] [blame] | 19 | |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 20 | // CHECK-NEXT: func2 |
| 21 | void func2() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+5]]:2 = #0 |
| 22 | int i = 0; |
| 23 | // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:10 = #0 |
| 24 | MACRO_1; // CHECK-NEXT: File 0, [[@LINE]]:10 -> [[@LINE+2]]:2 = 0 |
| 25 | i = 2; |
| 26 | } |
| 27 | // CHECK-NEXT: File 1, 5:17 -> 5:32 = #0 |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 28 | // CHECK-NEXT: Expansion,File 1, 5:25 -> 5:32 = 0 |
| 29 | // CHECK-NEXT: File 2, 4:17 -> 4:22 = 0 |
| 30 | |
| 31 | // CHECK-NEXT: func3 |
| 32 | void func3() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+3]]:2 = #0 |
| 33 | MACRO_2; // CHECK-NEXT: Expansion,File 0, [[@LINE]]:3 -> [[@LINE]]:10 = #0 |
| 34 | MACRO_2; // CHECK-NEXT: Expansion,File 0, [[@LINE]]:3 -> [[@LINE]]:10 = #0 |
| 35 | } |
| 36 | // CHECK-NEXT: File 1, 4:17 -> 4:22 = #0 |
| 37 | // CHECK-NEXT: File 2, 4:17 -> 4:22 = #0 |
| 38 | |
Igor Kudrin | 8545dae | 2016-08-29 11:48:50 +0000 | [diff] [blame] | 39 | // CHECK-NEXT: func4 |
| 40 | void func4() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+6]]:2 = #0 |
| 41 | int i = 0; |
| 42 | while (i++ < 10) // CHECK-NEXT: File 0, [[@LINE]]:10 -> [[@LINE]]:18 = (#0 + #1) |
Vedant Kumar | fa8fa04 | 2017-11-29 22:25:14 +0000 | [diff] [blame] | 43 | if (i < 5) // CHECK: File 0, [[@LINE]]:5 -> [[@LINE+2]]:14 = #1 |
Igor Kudrin | 8545dae | 2016-08-29 11:48:50 +0000 | [diff] [blame] | 44 | // CHECK-NEXT: File 0, [[@LINE-1]]:9 -> [[@LINE-1]]:14 = #1 |
| 45 | MACRO_2; // CHECK-NEXT: Expansion,File 0, [[@LINE]]:7 -> [[@LINE]]:14 = #2 |
| 46 | } |
| 47 | // CHECK-NEXT: File 1, 4:17 -> 4:22 = #2 |
| 48 | // CHECK-NOT: File 1 |
| 49 | |
Igor Kudrin | fc05ee3 | 2016-08-31 07:04:16 +0000 | [diff] [blame] | 50 | // CHECK-NEXT: func5 |
| 51 | void func5() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+4]]:2 = #0 |
| 52 | int i = 0; |
| 53 | if (i > 5) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:12 = #0 |
| 54 | MACRO_3; // CHECK-NEXT: Expansion,File 0, [[@LINE]]:5 -> [[@LINE]]:12 = #1 |
| 55 | } |
| 56 | // CHECK-NEXT: Expansion,File 1, 6:17 -> 6:24 = #1 |
| 57 | // CHECK-NEXT: File 2, 4:17 -> 4:22 = #1 |
| 58 | |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 59 | int main(int argc, const char *argv[]) { |
| 60 | func(); |
| 61 | func2(); |
| 62 | func3(); |
Igor Kudrin | 8545dae | 2016-08-29 11:48:50 +0000 | [diff] [blame] | 63 | func4(); |
Justin Bogner | bf42cfd | 2015-02-18 21:24:51 +0000 | [diff] [blame] | 64 | } |