]> granicus.if.org Git - llvm/commitdiff
[WebAssembly] Add linking metatdata test coverage for wasm2yaml
authorSam Clegg <sbc@chromium.org>
Wed, 13 Dec 2017 21:53:40 +0000 (21:53 +0000)
committerSam Clegg <sbc@chromium.org>
Wed, 13 Dec 2017 21:53:40 +0000 (21:53 +0000)
Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320639 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/BinaryFormat/Wasm.h
test/ObjectYAML/wasm/linking_section.yaml [new file with mode: 0644]
tools/yaml2obj/yaml2wasm.cpp

index c1ea9a4f4516e74859cd81fad6d9651dd0196ce4..f35c0852991dede57ba1aa8942fda09bffb8fb9e 100644 (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,
 };
 
diff --git a/test/ObjectYAML/wasm/linking_section.yaml b/test/ObjectYAML/wasm/linking_section.yaml
new file mode 100644 (file)
index 0000000..534d0c3
--- /dev/null
@@ -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: ...
index b4c21d0f0e5dc60ec7b52d24232fa6fa01461353..3eae8727b607e7bc9358154199d6910091c3ae38 100644 (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());