summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2017-04-14 19:50:44 +0000
committerSam Clegg <sbc@chromium.org>2017-04-14 19:50:44 +0000
commit135a4b8ea1cdba8b7ee28782be21e7c172700d43 (patch)
tree3c10e7340111cde2533e72de036d742150904174 /llvm/test/tools/llvm-readobj
parent7cfe41659c15c911129e2229b8ab460886886bf0 (diff)
downloadbcm5719-llvm-135a4b8ea1cdba8b7ee28782be21e7c172700d43.tar.gz
bcm5719-llvm-135a4b8ea1cdba8b7ee28782be21e7c172700d43.zip
[WebAssembly] Improve readobj and nm support for wasm
Now that the libObect support for wasm is better we can have readobj and nm produce more useful output too. Differential Revision: https://reviews.llvm.org/D31514 llvm-svn: 300365
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasmbin181 -> 221 bytes
-rw-r--r--llvm/test/tools/llvm-readobj/file-headers.test7
-rw-r--r--llvm/test/tools/llvm-readobj/relocations.test25
-rw-r--r--llvm/test/tools/llvm-readobj/sections.test95
-rw-r--r--llvm/test/tools/llvm-readobj/symbols.test21
5 files changed, 102 insertions, 46 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm
index d3906eeaf6f..f14192f1798 100644
--- a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm
+++ b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm
Binary files differ
diff --git a/llvm/test/tools/llvm-readobj/file-headers.test b/llvm/test/tools/llvm-readobj/file-headers.test
index 52485f7a34a..47fb24de1b6 100644
--- a/llvm/test/tools/llvm-readobj/file-headers.test
+++ b/llvm/test/tools/llvm-readobj/file-headers.test
@@ -26,10 +26,9 @@ RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \
RUN: | FileCheck %s -check-prefix COFF-IMPORTLIB
RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-lanai \
RUN: | FileCheck %s -check-prefix ELF-LANAI
-# trivial.obj.wasm was generated using wast2wasm which is part of the wabt
-# project (https://github.com/WebAssembly/wabt) using the following command:
-# $ wast2wasm --debug-names ./test/roundtrip/generate-some-names.txt -o \
-# trivial.obj.wasm
+# trivial.obj.wasm was generated using the following command:
+# echo "extern int bar, baz; int foo() { return bar + baz + (int)&foo; }" | \
+# ./bin/clang -c -o trivial.obj.wasm -target wasm32-unknown-unknown-wasm -x c -
RUN: llvm-readobj -h %p/Inputs/trivial.obj.wasm \
RUN: | FileCheck %s -check-prefix WASM
diff --git a/llvm/test/tools/llvm-readobj/relocations.test b/llvm/test/tools/llvm-readobj/relocations.test
index 229fef54fb8..475ac1d7e29 100644
--- a/llvm/test/tools/llvm-readobj/relocations.test
+++ b/llvm/test/tools/llvm-readobj/relocations.test
@@ -16,6 +16,8 @@ RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc64 \
RUN: | FileCheck %s -check-prefix MACHO-PPC64
RUN: llvm-readobj -r -expand-relocs %p/Inputs/trivial.obj.macho-arm \
RUN: | FileCheck %s -check-prefix MACHO-ARM
+RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.wasm \
+RUN: | FileCheck %s -check-prefix WASM
COFF: Relocations [
COFF-NEXT: Section (1) .text {
@@ -283,3 +285,26 @@ MACHO-ARM-NEXT: Value: 0x4
MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: ]
+
+WASM: Relocations [
+WASM-NEXT: Section (8) CODE {
+WASM-NEXT: Relocation {
+WASM-NEXT: Type: R_WEBASSEMBLY_TABLE_INDEX_SLEB (1)
+WASM-NEXT: Offset: 0x6
+WASM-NEXT: Index: 0x0
+WASM-NEXT: Addend: 0x0
+WASM-NEXT: }
+WASM-NEXT: Relocation {
+WASM-NEXT: Type: R_WEBASSEMBLY_GLOBAL_ADDR_LEB (3)
+WASM-NEXT: Offset: 0x15
+WASM-NEXT: Index: 0x0
+WASM-NEXT: Addend: 0x0
+WASM-NEXT: }
+WASM-NEXT: Relocation {
+WASM-NEXT: Type: R_WEBASSEMBLY_GLOBAL_ADDR_LEB (3)
+WASM-NEXT: Offset: 0x24
+WASM-NEXT: Index: 0x1
+WASM-NEXT: Addend: 0x0
+WASM-NEXT: }
+WASM-NEXT: }
+WASM-NEXT: ]
diff --git a/llvm/test/tools/llvm-readobj/sections.test b/llvm/test/tools/llvm-readobj/sections.test
index 53705a7a696..312c47fe4c8 100644
--- a/llvm/test/tools/llvm-readobj/sections.test
+++ b/llvm/test/tools/llvm-readobj/sections.test
@@ -494,45 +494,56 @@ MACHO-ARM-NEXT: }
MACHO-ARM-NEXT:]
WASM: Sections [
-WASM-NEXT: Section {
-WASM-NEXT: Type: TYPE (0x1)
-WASM-NEXT: Size: 15
-WASM-NEXT: Offset: 8
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: IMPORT (0x2)
-WASM-NEXT: Size: 11
-WASM-NEXT: Offset: 25
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: FUNCTION (0x3)
-WASM-NEXT: Size: 3
-WASM-NEXT: Offset: 38
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: TABLE (0x4)
-WASM-NEXT: Size: 5
-WASM-NEXT: Offset: 43
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: EXPORT (0x7)
-WASM-NEXT: Size: 14
-WASM-NEXT: Offset: 50
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: ELEM (0x9)
-WASM-NEXT: Size: 7
-WASM-NEXT: Offset: 66
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: CODE (0xA)
-WASM-NEXT: Size: 42
-WASM-NEXT: Offset: 75
-WASM-NEXT: }
-WASM-NEXT: Section {
-WASM-NEXT: Type: CUSTOM (0x0)
-WASM-NEXT: Size: 60
-WASM-NEXT: Offset: 119
-WASM-NEXT: Name: name
-WASM-NEXT: }
-WASM-NEXT: ]
+WASM-NEXT: Section {
+WASM-NEXT: Type: TYPE (0x1)
+WASM-NEXT: Size: 5
+WASM-NEXT: Offset: 8
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: IMPORT (0x2)
+WASM-NEXT: Size: 23
+WASM-NEXT: Offset: 19
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: FUNCTION (0x3)
+WASM-NEXT: Size: 2
+WASM-NEXT: Offset: 48
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: TABLE (0x4)
+WASM-NEXT: Size: 4
+WASM-NEXT: Offset: 56
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: MEMORY (0x5)
+WASM-NEXT: Size: 3
+WASM-NEXT: Offset: 66
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: EXPORT (0x7)
+WASM-NEXT: Size: 7
+WASM-NEXT: Offset: 75
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: ELEM (0x9)
+WASM-NEXT: Size: 7
+WASM-NEXT: Offset: 88
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: CODE (0xA)
+WASM-NEXT: Size: 61
+WASM-NEXT: Offset: 101
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: CUSTOM (0x0)
+WASM-NEXT: Size: 17
+WASM-NEXT: Offset: 168
+WASM-NEXT: Name: name
+WASM-NEXT: }
+WASM-NEXT: Section {
+WASM-NEXT: Type: CUSTOM (0x0)
+WASM-NEXT: Size: 24
+WASM-NEXT: Offset: 191
+WASM-NEXT: Name: reloc.CODE
+WASM-NEXT: }
+WASM-NEXT:]
diff --git a/llvm/test/tools/llvm-readobj/symbols.test b/llvm/test/tools/llvm-readobj/symbols.test
index 71955e0d823..1037c286602 100644
--- a/llvm/test/tools/llvm-readobj/symbols.test
+++ b/llvm/test/tools/llvm-readobj/symbols.test
@@ -2,6 +2,8 @@ RUN: llvm-readobj -t %p/Inputs/trivial.obj.coff-i386 \
RUN: | FileCheck %s -check-prefix COFF
RUN: llvm-readobj -t %p/Inputs/trivial.obj.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF
+RUN: llvm-readobj -t %p/Inputs/trivial.obj.wasm \
+RUN: | FileCheck %s -check-prefix WASM
COFF: Symbols [
COFF-NEXT: Symbol {
@@ -68,3 +70,22 @@ ELF-NEXT: Type: Object (0x1)
ELF-NEXT: Other: 0
ELF-NEXT: Section: .rodata.str1.1 (0x5)
ELF-NEXT: }
+
+WASM: Symbols [
+WASM-NEXT: Symbol {
+WASM-NEXT: Name: bar
+WASM-NEXT: Type: GLOBAL_IMPORT (0x2)
+WASM-NEXT: }
+WASM-NEXT: Symbol {
+WASM-NEXT: Name: baz
+WASM-NEXT: Type: GLOBAL_IMPORT (0x2)
+WASM-NEXT: }
+WASM-NEXT: Symbol {
+WASM-NEXT: Name: foo
+WASM-NEXT: Type: FUNCTION_EXPORT (0x1)
+WASM-NEXT: }
+WASM-NEXT: Symbol {
+WASM-NEXT: Name: foo
+WASM-NEXT: Type: DEBUG_FUNCTION_NAME (0x4)
+WASM-NEXT: }
+WASM-NEXT: ]
OpenPOWER on IntegriCloud