diff options
| author | Igor Kudrin <ikudrin.dev@gmail.com> | 2016-08-31 07:04:16 +0000 |
|---|---|---|
| committer | Igor Kudrin <ikudrin.dev@gmail.com> | 2016-08-31 07:04:16 +0000 |
| commit | fc05ee344ccead77e9674bfb075077c8c3221d1f (patch) | |
| tree | dc119c0e591fce9f4e822cdc796f03020486ff1a /clang/test/CoverageMapping | |
| parent | f3c8a9cfbba46ba2a4024794da38343af4dcb7ea (diff) | |
| download | bcm5719-llvm-fc05ee344ccead77e9674bfb075077c8c3221d1f.tar.gz bcm5719-llvm-fc05ee344ccead77e9674bfb075077c8c3221d1f.zip | |
[Coverage] Suppress creating a code region if the same area is covered by an expansion region.
In most cases these code regions are just redundant, but sometimes they
could be assigned to the counter of the parent code region instead of
the counter of the nested block.
Differential Revision: https://reviews.llvm.org/D23987
llvm-svn: 280199
Diffstat (limited to 'clang/test/CoverageMapping')
| -rw-r--r-- | clang/test/CoverageMapping/macroception.c | 6 | ||||
| -rw-r--r-- | clang/test/CoverageMapping/macros.c | 11 |
2 files changed, 10 insertions, 7 deletions
diff --git a/clang/test/CoverageMapping/macroception.c b/clang/test/CoverageMapping/macroception.c index 78487416418..7c142ef5afd 100644 --- a/clang/test/CoverageMapping/macroception.c +++ b/clang/test/CoverageMapping/macroception.c @@ -11,7 +11,6 @@ int main() M1 return 0; } -// CHECK-NEXT: File 1, 4:12 -> 4:14 = #0 // CHECK-NEXT: Expansion,File 1, 4:12 -> 4:14 = #0 // CHECK-NEXT: File 2, 3:12 -> 3:13 = #0 @@ -21,7 +20,6 @@ int main() M1 void func2() { int x = 0; M11 -// CHECK-NEXT: File 1, 6:13 -> 6:16 = #0 // CHECK-NEXT: Expansion,File 1, 6:13 -> 6:16 = #0 // CHECK-NEXT: File 2, 5:13 -> 5:14 = #0 @@ -32,9 +30,7 @@ M11 void func3() M1 int x = 0; M11 -// CHECK-NEXT: File 1, 4:12 -> 4:14 = #0 // CHECK-NEXT: Expansion,File 1, 4:12 -> 4:14 = #0 -// CHECK-NEXT: File 2, 6:13 -> 6:16 = #0 // CHECK-NEXT: Expansion,File 2, 6:13 -> 6:16 = #0 // CHECK-NEXT: File 3, 3:12 -> 3:13 = #0 // CHECK-NEXT: File 4, 5:13 -> 5:14 = #0 @@ -44,9 +40,7 @@ M11 // CHECK-NEXT: File 0, [[@LINE+2]]:16 -> [[@LINE+2]]:20 = #0 // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:17 -> [[@LINE+1]]:20 = #0 void func4() M1 M11 -// CHECK-NEXT: File 1, 4:12 -> 4:14 = #0 // CHECK-NEXT: Expansion,File 1, 4:12 -> 4:14 = #0 -// CHECK-NEXT: File 2, 6:13 -> 6:16 = #0 // CHECK-NEXT: Expansion,File 2, 6:13 -> 6:16 = #0 // CHECK-NEXT: File 3, 3:12 -> 3:13 = #0 // CHECK-NEXT: File 4, 5:13 -> 5:14 = #0 diff --git a/clang/test/CoverageMapping/macros.c b/clang/test/CoverageMapping/macros.c index 8e2355b1ab4..60164be91d7 100644 --- a/clang/test/CoverageMapping/macros.c +++ b/clang/test/CoverageMapping/macros.c @@ -3,6 +3,7 @@ #define MACRO return; bar() #define MACRO_2 bar() #define MACRO_1 return; MACRO_2 +#define MACRO_3 MACRO_2 void bar() {} @@ -24,7 +25,6 @@ void func2() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+5]]:2 = #0 i = 2; } // CHECK-NEXT: File 1, 5:17 -> 5:32 = #0 -// CHECK-NEXT: File 1, 5:25 -> 5:32 = 0 // CHECK-NEXT: Expansion,File 1, 5:25 -> 5:32 = 0 // CHECK-NEXT: File 2, 4:17 -> 4:22 = 0 @@ -47,6 +47,15 @@ void func4() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+6]]:2 = #0 // CHECK-NEXT: File 1, 4:17 -> 4:22 = #2 // CHECK-NOT: File 1 +// CHECK-NEXT: func5 +void func5() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+4]]:2 = #0 + int i = 0; + if (i > 5) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:12 = #0 + MACRO_3; // CHECK-NEXT: Expansion,File 0, [[@LINE]]:5 -> [[@LINE]]:12 = #1 +} +// CHECK-NEXT: Expansion,File 1, 6:17 -> 6:24 = #1 +// CHECK-NEXT: File 2, 4:17 -> 4:22 = #1 + int main(int argc, const char *argv[]) { func(); func2(); |

