summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-04-12 20:31:12 +0000
committerSam Clegg <sbc@chromium.org>2018-04-12 20:31:12 +0000
commit9745afa6748bcd5424cf7b2324b5a3dc7f1feb35 (patch)
treed195e71c0172f1a5f54de5887bd7a6c2f9b57f51 /llvm/lib/Object
parentacd9ca34d8eda94f7224fbcfd06674cb69f4963a (diff)
downloadbcm5719-llvm-9745afa6748bcd5424cf7b2324b5a3dc7f1feb35.tar.gz
bcm5719-llvm-9745afa6748bcd5424cf7b2324b5a3dc7f1feb35.zip
[WebAssembly] libObject: Don't include the name the size of custom sections
Differential Revision: https://reviews.llvm.org/D45579 llvm-svn: 329947
Diffstat (limited to 'llvm/lib/Object')
-rw-r--r--llvm/lib/Object/WasmObjectFile.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp
index 0c78631da25..b9eba01873c 100644
--- a/llvm/lib/Object/WasmObjectFile.cpp
+++ b/llvm/lib/Object/WasmObjectFile.cpp
@@ -178,6 +178,11 @@ static Error readSection(WasmSection &Section, const uint8_t *&Ptr,
if (Ptr + Size > Eof)
return make_error<StringError>("Section too large",
object_error::parse_failed);
+ if (Section.Type == wasm::WASM_SEC_CUSTOM) {
+ const uint8_t *NameStart = Ptr;
+ Section.Name = readString(Ptr);
+ Size -= Ptr - NameStart;
+ }
Section.Content = ArrayRef<uint8_t>(Ptr, Size);
Ptr += Size;
return Error::success();
@@ -618,7 +623,6 @@ Error WasmObjectFile::parseRelocSection(StringRef Name, const uint8_t *Ptr,
Error WasmObjectFile::parseCustomSection(WasmSection &Sec,
const uint8_t *Ptr, const uint8_t *End) {
- Sec.Name = readString(Ptr);
if (Sec.Name == "name") {
if (Error Err = parseNameSection(Ptr, End))
return Err;
OpenPOWER on IntegriCloud