[PATCH] D61623: [WebAssembly] Add more test coverage for reloctions against section symbols

Sam Clegg via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 6 17:12:31 PDT 2019


sbc100 updated this revision to Diff 198377.
sbc100 added a comment.

- remove restriction


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61623/new/

https://reviews.llvm.org/D61623

Files:
  lld/test/wasm/section-symbol-relocs.yaml
  llvm/lib/ObjectYAML/WasmYAML.cpp
  llvm/tools/yaml2obj/yaml2wasm.cpp


Index: llvm/tools/yaml2obj/yaml2wasm.cpp
===================================================================
--- llvm/tools/yaml2obj/yaml2wasm.cpp
+++ llvm/tools/yaml2obj/yaml2wasm.cpp
@@ -532,11 +532,6 @@
     break;
   case wasm::WASM_SEC_CUSTOM: {
     auto CustomSection = dyn_cast<WasmYAML::CustomSection>(&Sec);
-    if (!CustomSection->Name.startswith(".debug_")) {
-      llvm_unreachable("not yet implemented (only for debug sections)");
-      return 1;
-    }
-
     writeStringRef(("reloc." + CustomSection->Name).str(), OS);
     break;
   }
Index: llvm/lib/ObjectYAML/WasmYAML.cpp
===================================================================
--- llvm/lib/ObjectYAML/WasmYAML.cpp
+++ llvm/lib/ObjectYAML/WasmYAML.cpp
@@ -484,7 +484,8 @@
                                                   WasmYAML::SymbolInfo &Info) {
   IO.mapRequired("Index", Info.Index);
   IO.mapRequired("Kind", Info.Kind);
-  IO.mapRequired("Name", Info.Name);
+  if (Info.Kind != wasm::WASM_SYMBOL_TYPE_SECTION)
+    IO.mapRequired("Name", Info.Name);
   IO.mapRequired("Flags", Info.Flags);
   if (Info.Kind == wasm::WASM_SYMBOL_TYPE_FUNCTION) {
     IO.mapRequired("Function", Info.ElementIndex);
Index: lld/test/wasm/section-symbol-relocs.yaml
===================================================================
--- /dev/null
+++ lld/test/wasm/section-symbol-relocs.yaml
@@ -0,0 +1,51 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: llc -filetype=obj  %S/Inputs/custom.ll -o %t2.o
+# RUN: wasm-ld --no-entry -o - %t2.o %t.o | obj2yaml | FileCheck %s
+# RUN: wasm-ld -r --no-entry -o - %t2.o %t.o | obj2yaml | FileCheck %s -check-prefix=RELOC
+
+--- !WASM
+FileHeader:
+  Version:         0x00000001
+Sections:
+  - Type:            CUSTOM
+    Name:            green
+    Payload:         'AA0000000000000000'
+    Relocations:
+      - Type:            R_WASM_SECTION_OFFSET_I32
+        Index:           0
+        Offset:          0x00000001
+      - Type:            R_WASM_SECTION_OFFSET_I32
+        Index:           1
+        Offset:          0x00000005
+  - Type:            CUSTOM
+    Name:            red
+    Payload:         'BB0000000000000000'
+  - Type:            CUSTOM
+    Name:            linking
+    Version:         2
+    SymbolTable:
+      - Index:           0
+        Kind:            SECTION
+        Section:         0
+        Flags:           [ BINDING_LOCAL ]
+      - Index:           1
+        Kind:            SECTION
+        Section:         1
+        Flags:           [ BINDING_LOCAL ]
+...
+
+# CHECK:        Name:            green
+# CHECK-NEXT:   Payload:         626172717578AA0600000003000000
+# CHECK:        Name:            red
+# CHECK-NEXT:   Payload:         666F6FBB0000000000000000
+
+# RELOC:        Relocations:
+# RELOC-NEXT:       - Type:            R_WASM_SECTION_OFFSET_I32
+# RELOC-NEXT:         Index:           0
+# RELOC-NEXT:         Offset:          0x00000007
+# RELOC-NEXT:         Addend:          6
+# RELOC-NEXT:       - Type:            R_WASM_SECTION_OFFSET_I32
+# RELOC-NEXT:         Index:           1
+# RELOC-NEXT:         Offset:          0x0000000B
+# RELOC-NEXT:         Addend:          3
+# RELOC-NEXT:    Name:            green


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61623.198377.patch
Type: text/x-patch
Size: 3201 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190507/ed9a6509/attachment.bin>


More information about the llvm-commits mailing list