Reland "[WebAssembly] Add support for naming wasm data segments"

Add adds support for naming data segments.  This is useful
useful linkers so that they can merge similar sections.

Differential Revision: https://reviews.llvm.org/D37886

llvm-svn: 313795
This commit is contained in:
Sam Clegg
2017-09-20 19:03:35 +00:00
parent 01a409520b
commit d95ed959d8
14 changed files with 130 additions and 9 deletions

View File

@@ -396,6 +396,15 @@ Error WasmObjectFile::parseLinkingSection(const uint8_t *Ptr,
case wasm::WASM_DATA_ALIGNMENT:
LinkingData.DataAlignment = readVaruint32(Ptr);
break;
case wasm::WASM_SEGMENT_NAMES: {
uint32_t Count = readVaruint32(Ptr);
if (Count > DataSegments.size())
return make_error<GenericBinaryError>("Too many segment names",
object_error::parse_failed);
for (uint32_t i = 0; i < Count; i++)
DataSegments[i].Data.Name = readString(Ptr);
break;
}
case wasm::WASM_STACK_POINTER:
default:
Ptr += Size;