From 75f8360e280c1a23b57b61374451281957a0d497 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 13 Dec 2017 21:53:40 +0000 Subject: [PATCH] [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 --- llvm/include/llvm/BinaryFormat/Wasm.h | 1 - .../test/ObjectYAML/wasm/linking_section.yaml | 60 +++++++++++++++++++ llvm/tools/yaml2obj/yaml2wasm.cpp | 1 - 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 llvm/test/ObjectYAML/wasm/linking_section.yaml diff --git a/llvm/include/llvm/BinaryFormat/Wasm.h b/llvm/include/llvm/BinaryFormat/Wasm.h index c1ea9a4f4516..f35c0852991d 100644 --- a/llvm/include/llvm/BinaryFormat/Wasm.h +++ b/llvm/include/llvm/BinaryFormat/Wasm.h @@ -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, }; diff --git a/llvm/test/ObjectYAML/wasm/linking_section.yaml b/llvm/test/ObjectYAML/wasm/linking_section.yaml new file mode 100644 index 000000000000..534d0c335544 --- /dev/null +++ b/llvm/test/ObjectYAML/wasm/linking_section.yaml @@ -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: ... diff --git a/llvm/tools/yaml2obj/yaml2wasm.cpp b/llvm/tools/yaml2obj/yaml2wasm.cpp index b4c21d0f0e5d..3eae8727b607 100644 --- a/llvm/tools/yaml2obj/yaml2wasm.cpp +++ b/llvm/tools/yaml2obj/yaml2wasm.cpp @@ -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());