summaryrefslogtreecommitdiffstats
path: root/lib/ProfileData/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-06-09 19:06:30 +0000
committerdim <dim@FreeBSD.org>2015-06-09 19:06:30 +0000
commit9b27354f6f3e9086d5f7abbc373b617209fc35b2 (patch)
tree1dc5e75ab222a9ead44c699eceafab7a6ca7b310 /lib/ProfileData/CoverageMappingReader.cpp
parent782067d0278612ee75d024b9b135c221c327e9e8 (diff)
downloadFreeBSD-src-9b27354f6f3e9086d5f7abbc373b617209fc35b2.zip
FreeBSD-src-9b27354f6f3e9086d5f7abbc373b617209fc35b2.tar.gz
Vendor import of llvm trunk r239412:
https://llvm.org/svn/llvm-project/llvm/trunk@239412
Diffstat (limited to 'lib/ProfileData/CoverageMappingReader.cpp')
-rw-r--r--lib/ProfileData/CoverageMappingReader.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/ProfileData/CoverageMappingReader.cpp b/lib/ProfileData/CoverageMappingReader.cpp
index cf6cd58..ec531c3 100644
--- a/lib/ProfileData/CoverageMappingReader.cpp
+++ b/lib/ProfileData/CoverageMappingReader.cpp
@@ -19,6 +19,7 @@
#include "llvm/Support/Debug.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/LEB128.h"
+#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
@@ -358,8 +359,12 @@ std::error_code readCoverageMappingData(
const char *CovBuf = Buf;
Buf += CoverageSize;
const char *CovEnd = Buf;
+
if (Buf > End)
return coveragemap_error::malformed;
+ // Each coverage map has an alignment of 8, so we need to adjust alignment
+ // before reading the next map.
+ Buf += alignmentAdjustment(Buf, 8);
while (FunBuf < FunEnd) {
// Read the function information
OpenPOWER on IntegriCloud