aboutsummaryrefslogtreecommitdiffstats
path: root/tools/llvm-cov
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-09-29 17:06:40 +0000
committerDevang Patel <dpatel@apple.com>2011-09-29 17:06:40 +0000
commit0066f9290e95dddedc47472e927319893929b05b (patch)
treeaca7c9415c1c9c47d6e32d7b410da50daf165b1a /tools/llvm-cov
parenta5ef699f41499764afdd76c6495f73c1f1e4f85e (diff)
downloadexternal_llvm-0066f9290e95dddedc47472e927319893929b05b.zip
external_llvm-0066f9290e95dddedc47472e927319893929b05b.tar.gz
external_llvm-0066f9290e95dddedc47472e927319893929b05b.tar.bz2
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140789 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-cov')
-rw-r--r--tools/llvm-cov/GCOVReader.cpp28
1 files changed, 17 insertions, 11 deletions
diff --git a/tools/llvm-cov/GCOVReader.cpp b/tools/llvm-cov/GCOVReader.cpp
index e4570b1..2b40a84 100644
--- a/tools/llvm-cov/GCOVReader.cpp
+++ b/tools/llvm-cov/GCOVReader.cpp
@@ -27,6 +27,16 @@ GCOVFile::~GCOVFile() {
DeleteContainerPointers(Functions);
}
+/// isGCDAFile - Return true if Format identifies a .gcda file.
+static bool isGCDAFile(GCOVFormat Format) {
+ return Format == GCDA_402 || Format == GCDA_404;
+}
+
+/// isGCNOFile - Return true if Format identifies a .gcno file.
+static bool isGCNOFile(GCOVFormat Format) {
+ return Format == GCNO_402 || Format == GCNO_404;
+}
+
/// read - Read GCOV buffer.
bool GCOVFile::read(GCOVBuffer &Buffer) {
GCOVFormat Format = Buffer.readGCOVFormat();
@@ -36,20 +46,16 @@ bool GCOVFile::read(GCOVBuffer &Buffer) {
unsigned i = 0;
while (1) {
GCOVFunction *GFun = NULL;
- if (Format == GCDA_402 || Format == GCDA_404) {
- if (i < Functions.size())
- GFun = Functions[i];
- } else
+ if (isGCDAFile(Format)) {
+ // Use existing function while reading .gcda file.
+ assert (i < Functions.size() && ".gcda data does not match .gcno data");
+ GFun = Functions[i];
+ } else if (isGCNOFile(Format)){
GFun = new GCOVFunction();
-
- if (GFun && GFun->read(Buffer, Format)) {
- if (Format == GCNO_402 || Format == GCNO_404)
- Functions.push_back(GFun);
+ Functions.push_back(GFun);
}
- else {
- delete GFun;
+ if (!GFun || !GFun->read(Buffer, Format))
break;
- }
++i;
}
return true;