summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ProfileData/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2016-01-03 18:57:40 +0000
committerXinliang David Li <davidxl@google.com>2016-01-03 18:57:40 +0000
commit946558df2de7cf5c0f7cc56fc8546fc4ad6213a2 (patch)
tree19aa24683b27ff9d62d9a283445204cabed08514 /llvm/lib/ProfileData/CoverageMappingReader.cpp
parent4eb2cd64ffd474cb6b80446add096934ce2f9437 (diff)
downloadbcm5719-llvm-946558df2de7cf5c0f7cc56fc8546fc4ad6213a2.tar.gz
bcm5719-llvm-946558df2de7cf5c0f7cc56fc8546fc4ad6213a2.zip
[PGO] Code refactoring to use header struct def /NFC
llvm-svn: 256712
Diffstat (limited to 'llvm/lib/ProfileData/CoverageMappingReader.cpp')
-rw-r--r--llvm/lib/ProfileData/CoverageMappingReader.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/ProfileData/CoverageMappingReader.cpp b/llvm/lib/ProfileData/CoverageMappingReader.cpp
index a0f82a0d4ed..32c692d8073 100644
--- a/llvm/lib/ProfileData/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/CoverageMappingReader.cpp
@@ -316,12 +316,17 @@ static std::error_code readCoverageMappingData(
// Read the records in the coverage data section.
for (const char *Buf = Data.data(), *End = Buf + Data.size(); Buf < End;) {
- if (Buf + 4 * sizeof(uint32_t) > End)
+ if (Buf + sizeof(CovMapHeader) > End)
return coveragemap_error::malformed;
- uint32_t NRecords = endian::readNext<uint32_t, Endian, unaligned>(Buf);
- uint32_t FilenamesSize = endian::readNext<uint32_t, Endian, unaligned>(Buf);
- uint32_t CoverageSize = endian::readNext<uint32_t, Endian, unaligned>(Buf);
- uint32_t Version = endian::readNext<uint32_t, Endian, unaligned>(Buf);
+ auto CovHeader = reinterpret_cast<const coverage::CovMapHeader *>(Buf);
+ uint32_t NRecords =
+ endian::byte_swap<uint32_t, Endian>(CovHeader->NRecords);
+ uint32_t FilenamesSize =
+ endian::byte_swap<uint32_t, Endian>(CovHeader->FilenamesSize);
+ uint32_t CoverageSize =
+ endian::byte_swap<uint32_t, Endian>(CovHeader->CoverageSize);
+ uint32_t Version = endian::byte_swap<uint32_t, Endian>(CovHeader->Version);
+ Buf = reinterpret_cast<const char *>(++CovHeader);
switch (Version) {
case CoverageMappingVersion1:
OpenPOWER on IntegriCloud