summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-11-16 00:59:27 +0000
committerRui Ueyama <ruiu@google.com>2016-11-16 00:59:27 +0000
commitfb1e6d22a32c7d88e52ef3575cc511cf91b02d25 (patch)
treeb7c5fbce747b6f36885796fd9b4f91352c331425 /llvm/lib/DebugInfo
parent6328cbd31bef72bf1ebb8e2b1cdc4899bae3c221 (diff)
downloadbcm5719-llvm-fb1e6d22a32c7d88e52ef3575cc511cf91b02d25.tar.gz
bcm5719-llvm-fb1e6d22a32c7d88e52ef3575cc511cf91b02d25.zip
Align Modi and FileInfo substreams on 32-byte offsets.
This is required by DbiStream, but DbiStreamBuilder didn't align these substreams, so the output of DbiSTreamBuilder couldn't be read by DbiStream. Test will be added to LLD. llvm-svn: 287067
Diffstat (limited to 'llvm/lib/DebugInfo')
-rw-r--r--llvm/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp b/llvm/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
index 9989c4c6dd7..33c07ffa3b8 100644
--- a/llvm/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
+++ b/llvm/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
@@ -107,7 +107,7 @@ uint32_t DbiStreamBuilder::calculateModiSubstreamSize() const {
Size += M->Mod.size() + 1;
Size += M->Obj.size() + 1;
}
- return Size;
+ return alignTo(Size, sizeof(uint32_t));
}
uint32_t DbiStreamBuilder::calculateSectionContribsStreamSize() const {
@@ -134,7 +134,7 @@ uint32_t DbiStreamBuilder::calculateFileInfoSubstreamSize() const {
NumFileInfos += M->SourceFiles.size();
Size += NumFileInfos * sizeof(ulittle32_t); // FileNameOffsets
Size += calculateNamesBufferSize();
- return Size;
+ return alignTo(Size, sizeof(uint32_t));
}
uint32_t DbiStreamBuilder::calculateNamesBufferSize() const {
@@ -167,7 +167,7 @@ Error DbiStreamBuilder::generateModiSubstream() {
if (auto EC = ModiWriter.writeZeroString(M->Obj))
return EC;
}
- if (ModiWriter.bytesRemaining() != 0)
+ if (ModiWriter.bytesRemaining() > sizeof(uint32_t))
return make_error<RawError>(raw_error_code::invalid_format,
"Unexpected bytes in Modi Stream Data");
return Error::success();
@@ -228,7 +228,7 @@ Error DbiStreamBuilder::generateFileInfoSubstream() {
return make_error<RawError>(raw_error_code::invalid_format,
"The names buffer contained unexpected data.");
- if (MetadataWriter.bytesRemaining() > 0)
+ if (MetadataWriter.bytesRemaining() > sizeof(uint32_t))
return make_error<RawError>(
raw_error_code::invalid_format,
"The metadata buffer contained unexpected data.");
OpenPOWER on IntegriCloud