llvm-cov: Fix a misuse of ArrayRef::slice I introduced in r217430
authorJustin Bogner <mail@justinbogner.com>
Wed, 10 Sep 2014 06:06:07 +0000 (06:06 +0000)
committerJustin Bogner <mail@justinbogner.com>
Wed, 10 Sep 2014 06:06:07 +0000 (06:06 +0000)
It appears this code was completely untested, so using ArrayRef wrong
didn't break anything obvious.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217476 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-cov/Inputs/showExpansions.covmapping [new file with mode: 0644]
test/tools/llvm-cov/Inputs/showExpansions.profdata [new file with mode: 0644]
test/tools/llvm-cov/showExpansions.cpp [new file with mode: 0644]
tools/llvm-cov/SourceCoverageView.cpp

diff --git a/test/tools/llvm-cov/Inputs/showExpansions.covmapping b/test/tools/llvm-cov/Inputs/showExpansions.covmapping
new file mode 100644 (file)
index 0000000..dd73090
Binary files /dev/null and b/test/tools/llvm-cov/Inputs/showExpansions.covmapping differ
diff --git a/test/tools/llvm-cov/Inputs/showExpansions.profdata b/test/tools/llvm-cov/Inputs/showExpansions.profdata
new file mode 100644 (file)
index 0000000..7925c60
Binary files /dev/null and b/test/tools/llvm-cov/Inputs/showExpansions.profdata differ
diff --git a/test/tools/llvm-cov/showExpansions.cpp b/test/tools/llvm-cov/showExpansions.cpp
new file mode 100644 (file)
index 0000000..db5786b
--- /dev/null
@@ -0,0 +1,31 @@
+// RUN: llvm-cov show %S/Inputs/showExpansions.covmapping -instr-profile %S/Inputs/showExpansions.profdata -dump -show-expansions -filename-equivalence %s | FileCheck %s
+
+#define DO_SOMETHING_ELSE() \
+  do {                      \
+  } while (0)
+#define ANOTHER_THING() \
+  do {                  \
+    if (0) {            \
+    }                   \
+  } while (0)
+
+#define DO_SOMETHING(x)    \
+  do {                     \
+    if (x)                 \
+      DO_SOMETHING_ELSE(); \
+    else                   \
+      ANOTHER_THING();     \
+  } while (0)
+
+int main(int argc, const char *argv[]) {
+  for (int i = 0; i < 100; ++i)
+    DO_SOMETHING(i);
+  return 0;
+}
+
+// CHECK: Expansion of {{[0-9]+}}:13 -> 18 @ {{[0-9]+}}, 22:5
+// CHECK: Expansion of {{[0-9]+}}:4 -> 5 @ {{[0-9]+}}, 15:7
+// CHECK: Expansion of {{[0-9]+}}:7 -> 10 @ {{[0-9]+}}, 17:7
+
+// llvm-cov doesn't work on big endian yet
+// XFAIL: powerpc64-, s390x, mips-, mips64-, sparc
index 5f873acba0d696eb122167cc14534b7e36a85e96..159d74adf3856faf6ecb6003285974a586d63f58 100644 (file)
@@ -206,7 +206,7 @@ gatherLineSubViews(size_t &CurrentIdx,
   while (CurrentIdx < E &&
          Items[CurrentIdx]->getSubViewsExpansionLine() == LineNo)
     ++CurrentIdx;
-  return Items.slice(PrevIdx, CurrentIdx);
+  return Items.slice(PrevIdx, CurrentIdx - PrevIdx);
 }
 
 void SourceCoverageView::render(raw_ostream &OS, unsigned Offset) {