[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:04:15 PDT 2019
sbc100 created this revision.
Herald added subscribers: llvm-commits, sunfish, aheejin, hiraditya, jgravelle-google, aprantl, dschuff.
Herald added a project: LLVM.
The only known user of this relocation type and symbol type is
the debug info sections, but we were not testing the `--relocatable`
output path.
This change adds a minimal test case to cover relocations against
section symbols includes `--relocatable` output.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D61623
Files:
lld/test/wasm/section-symbol-relocs.yaml
llvm/lib/ObjectYAML/WasmYAML.cpp
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.198374.patch
Type: text/x-patch
Size: 2646 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190507/3772224b/attachment.bin>
More information about the llvm-commits
mailing list