summaryrefslogtreecommitdiff
path: root/include/llvm/Support/GCOV.h
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2013-10-22 17:43:47 +0000
committerBob Wilson <bob.wilson@apple.com>2013-10-22 17:43:47 +0000
commit51ec77d880ce53cbc8a48168185edc085df9b6d9 (patch)
treecd8ac30429d51373df6f95a0ce78a3570961972b /include/llvm/Support/GCOV.h
parent135fe6ac5f5b80ef68c19b3ec7bb0063e28f2bab (diff)
downloadllvm-51ec77d880ce53cbc8a48168185edc085df9b6d9.tar.gz
llvm-51ec77d880ce53cbc8a48168185edc085df9b6d9.tar.bz2
llvm-51ec77d880ce53cbc8a48168185edc085df9b6d9.tar.xz
Fix llvm-cov counts to be 64-bit integers to avoid overflows.
Line counts in llvm-cov are read in as 64-bit integers but were being truncated to 32-bit in collectLineCounts(), which caused overflow for large counts. This patch fixes all counts to be uint64_t. Patch by Yuchen Wu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193172 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/GCOV.h')
-rw-r--r--include/llvm/Support/GCOV.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/llvm/Support/GCOV.h b/include/llvm/Support/GCOV.h
index 67d637021a..aa436fbea9 100644
--- a/include/llvm/Support/GCOV.h
+++ b/include/llvm/Support/GCOV.h
@@ -205,17 +205,17 @@ class GCOVLines {
public:
~GCOVLines() { Lines.clear(); }
void add(uint32_t N) { Lines.push_back(N); }
- void collectLineCounts(FileInfo &FI, StringRef Filename, uint32_t Count);
+ void collectLineCounts(FileInfo &FI, StringRef Filename, uint64_t Count);
void dump();
private:
SmallVector<uint32_t, 4> Lines;
};
-typedef SmallVector<uint32_t, 16> LineCounts;
+typedef SmallVector<uint64_t, 16> LineCounts;
class FileInfo {
public:
- void addLineCount(StringRef Filename, uint32_t Line, uint32_t Count);
+ void addLineCount(StringRef Filename, uint32_t Line, uint64_t Count);
void print(StringRef gcnoFile, StringRef gcdaFile);
private:
StringMap<LineCounts> LineInfo;