From 51ec77d880ce53cbc8a48168185edc085df9b6d9 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Tue, 22 Oct 2013 17:43:47 +0000 Subject: 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 --- include/llvm/Support/GCOV.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include/llvm/Support/GCOV.h') diff --git a/include/llvm/Support/GCOV.h b/include/llvm/Support/GCOV.h index 67d6370..aa436fb 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 Lines; }; -typedef SmallVector LineCounts; +typedef SmallVector 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 LineInfo; -- cgit v1.1