[WebAssembly] Add linking metatdata test coverage for wasm2yaml

Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish

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

llvm-svn: 320639
This commit is contained in:
Sam Clegg 2017-12-13 21:53:40 +00:00
parent 6010880bd1
commit 75f8360e28
3 changed files with 60 additions and 2 deletions

View File

@ -184,7 +184,6 @@ enum class ValType {
enum : unsigned {
WASM_SYMBOL_INFO = 0x2,
WASM_DATA_SIZE = 0x3,
WASM_DATA_ALIGNMENT = 0x4,
WASM_SEGMENT_INFO = 0x5,
};

View File

@ -0,0 +1,60 @@
# RUN: yaml2obj %s | obj2yaml | FileCheck %s
--- !WASM
FileHeader:
Version: 0x00000001
Sections:
- Type: TYPE
Signatures:
- ReturnType: I32
ParamTypes:
- I32
- Type: IMPORT
Imports:
- Module: foo
Field: bar
Kind: FUNCTION
SigIndex: 0
- Type: DATA
Segments:
- MemoryIndex: 0
Offset:
Opcode: I32_CONST
Value: 4
Content: '10001000'
- MemoryIndex: 0
Offset:
Opcode: I32_CONST
Value: 8
Content: '11110000'
- Type: CUSTOM
Name: linking
DataSize: 999
SymbolInfo:
- Name: bar
Flags: 1
SegmentInfo:
- Index: 0
Alignment: 4
Flags: 0
Name: mydata
- Index: 1
Alignment: 2
Flags: 1
Name: moredata
...
# CHECK: - Type: CUSTOM
# CHECK-NEXT: Name: linking
# CHECK-NEXT: DataSize: 999
# CHECK-NEXT: SymbolInfo:
# CHECK-NEXT: - Name: bar
# CHECK-NEXT: Flags: 1
# CHECK-NEXT: SegmentInfo:
# CHECK-NEXT: - Index: 0
# CHECK-NEXT: Name: mydata
# CHECK-NEXT: Alignment: 4
# CHECK-NEXT: Flags: 0
# CHECK-NEXT: - Index: 1
# CHECK-NEXT: Name: moredata
# CHECK-NEXT: Alignment: 2
# CHECK-NEXT: Flags: 1
# CHECK-NEXT: ...

View File

@ -156,7 +156,6 @@ int WasmWriter::writeSectionContent(raw_ostream &OS, WasmYAML::LinkingSection &S
encodeULEB128(wasm::WASM_SEGMENT_INFO, OS);
encodeULEB128(Section.SegmentInfos.size(), SubSection.GetStream());
for (const WasmYAML::SegmentInfo &SegmentInfo : Section.SegmentInfos) {
encodeULEB128(SegmentInfo.Index, SubSection.GetStream());
writeStringRef(SegmentInfo.Name, SubSection.GetStream());
encodeULEB128(SegmentInfo.Alignment, SubSection.GetStream());
encodeULEB128(SegmentInfo.Flags, SubSection.GetStream());