diff options
author | Vedant Kumar <vsk@apple.com> | 2017-10-17 06:51:54 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2017-10-17 06:51:54 +0000 |
commit | 762d1e77cbcec32f272b58e412d4bca839626f95 (patch) | |
tree | 512a56965877fc7c53f36f2c2b6e3b0b768b8b6f /test/CoverageMapping | |
parent | 185bad56b324fc6da4bc6264cf98b2a743241549 (diff) | |
download | clang-762d1e77cbcec32f272b58e412d4bca839626f95.tar.gz |
[Coverage] Explicitly mark the l.h.s of && and || (fixes PR33465)
This makes it possible to view sub-line region counts for the l.h.s of
&& and || expressions in coverage reports.
It also fixes PR33465, which shows an example of incorrect coverage
output for an assignment statement containing '||'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315979 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CoverageMapping')
-rw-r--r-- | test/CoverageMapping/logical.cpp | 15 | ||||
-rw-r--r-- | test/CoverageMapping/macro-expansion.c | 6 |
2 files changed, 14 insertions, 7 deletions
diff --git a/test/CoverageMapping/logical.cpp b/test/CoverageMapping/logical.cpp index 198cc60d99..bc7c785b7b 100644 --- a/test/CoverageMapping/logical.cpp +++ b/test/CoverageMapping/logical.cpp @@ -1,13 +1,18 @@ // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name logical.cpp %s | FileCheck %s -int main() { // CHECK: File 0, [[@LINE]]:12 -> [[@LINE+10]]:2 = #0 +int main() { // CHECK: File 0, [[@LINE]]:12 -> [[@LINE+15]]:2 = #0 bool bt = true; bool bf = false; - bool a = bt && bf; // CHECK-NEXT: File 0, [[@LINE]]:18 -> [[@LINE]]:20 = #1 - a = bt && + bool a = bt && bf; // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE]]:14 = #0 + // CHECK-NEXT: File 0, [[@LINE-1]]:18 -> [[@LINE-1]]:20 = #1 + + a = bt && // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:9 = #0 bf; // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:9 = #2 - a = bf || bt; // CHECK-NEXT: File 0, [[@LINE]]:13 -> [[@LINE]]:15 = #3 - a = bf || + + a = bf || bt; // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:9 = #0 + // CHECK-NEXT: File 0, [[@LINE-1]]:13 -> [[@LINE-1]]:15 = #3 + + a = bf || // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:9 = #0 bt; // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:9 = #4 return 0; } diff --git a/test/CoverageMapping/macro-expansion.c b/test/CoverageMapping/macro-expansion.c index 3fca97584a..4e52558086 100644 --- a/test/CoverageMapping/macro-expansion.c +++ b/test/CoverageMapping/macro-expansion.c @@ -23,10 +23,12 @@ // CHECK-NEXT: Expansion,File 4, [[@LINE+2]]:20 -> [[@LINE+2]]:22 = (#0 + #8) // CHECK-NEXT: File 4, [[@LINE+1]]:36 -> [[@LINE+1]]:37 = (#0 + #8) #define M3(x) do { M2(x); } while (0) -// CHECK-NEXT: File 5, [[@LINE+2]]:15 -> [[@LINE+2]]:27 = #0 +// CHECK-NEXT: File 5, [[@LINE+3]]:15 -> [[@LINE+3]]:27 = #0 +// CHECK-NEXT: File 5, [[@LINE+2]]:16 -> [[@LINE+2]]:19 = #0 // CHECK-NEXT: File 5, [[@LINE+1]]:23 -> [[@LINE+1]]:26 = #12 #define M4(x) ((x) && (x)) -// CHECK-NEXT: File 6, [[@LINE+2]]:15 -> [[@LINE+2]]:27 = #0 +// CHECK-NEXT: File 6, [[@LINE+3]]:15 -> [[@LINE+3]]:27 = #0 +// CHECK-NEXT: File 6, [[@LINE+2]]:16 -> [[@LINE+2]]:19 = #0 // CHECK-NEXT: File 6, [[@LINE+1]]:23 -> [[@LINE+1]]:26 = #14 #define M5(x) ((x) || (x)) // CHECK-NEXT: File 7, [[@LINE+1]]:15 -> [[@LINE+1]]:26 = #0 |