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 --- lib/IR/GCOV.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/IR/GCOV.cpp') diff --git a/lib/IR/GCOV.cpp b/lib/IR/GCOV.cpp index 36c5390..8a3fb47 100644 --- a/lib/IR/GCOV.cpp +++ b/lib/IR/GCOV.cpp @@ -219,7 +219,7 @@ void GCOVBlock::dump() { /// collectLineCounts - Collect line counts. This must be used after /// reading .gcno and .gcda files. void GCOVLines::collectLineCounts(FileInfo &FI, StringRef Filename, - uint32_t Count) { + uint64_t Count) { for (SmallVectorImpl::iterator I = Lines.begin(), E = Lines.end(); I != E; ++I) FI.addLineCount(Filename, *I, Count); @@ -236,7 +236,7 @@ void GCOVLines::dump() { // FileInfo implementation. /// addLineCount - Add line count for the given line number in a file. -void FileInfo::addLineCount(StringRef Filename, uint32_t Line, uint32_t Count) { +void FileInfo::addLineCount(StringRef Filename, uint32_t Line, uint64_t Count) { if (LineInfo.find(Filename) == LineInfo.end()) { OwningPtr Buff; if (error_code ec = MemoryBuffer::getFileOrSTDIN(Filename, Buff)) { -- cgit v1.1