summaryrefslogtreecommitdiff
path: root/test/tools/llvm-objdump/X86
diff options
context:
space:
mode:
Diffstat (limited to 'test/tools/llvm-objdump/X86')
-rwxr-xr-xtest/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.dylib-x86_64bin0 -> 66544 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entrybin0 -> 3448 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/nofirst-symbol.macho-x86_64bin0 -> 336 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/note.macho-x86bin0 -> 76 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64bin0 -> 600 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/phdr-note.elf-x86-64bin0 -> 5048 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64bin0 -> 4720 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/stripped-elf.sobin0 -> 6088 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/stub-nosyms.macho-x86_64bin0 -> 528 bytes
-rwxr-xr-xtest/tools/llvm-objdump/X86/Inputs/thread.macho-i386bin0 -> 9204 bytes
-rw-r--r--test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml44
-rw-r--r--test/tools/llvm-objdump/X86/macho-build-version.yaml57
-rw-r--r--test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test10
-rw-r--r--test/tools/llvm-objdump/X86/macho-nofirst-symbol-disassembly.test8
-rw-r--r--test/tools/llvm-objdump/X86/macho-objc-meta-data.test62
-rw-r--r--test/tools/llvm-objdump/X86/macho-print-thread.test11
-rw-r--r--test/tools/llvm-objdump/X86/macho-private-headers.test8
-rw-r--r--test/tools/llvm-objdump/X86/macho-stub-nosyms-disassembly.test3
-rw-r--r--test/tools/llvm-objdump/X86/malformed-machos.test3
-rw-r--r--test/tools/llvm-objdump/X86/openbsd-headers.test2
-rw-r--r--test/tools/llvm-objdump/X86/phdrs.test4
-rw-r--r--test/tools/llvm-objdump/X86/stripped-shared.test10
22 files changed, 219 insertions, 3 deletions
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.dylib-x86_64 b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.dylib-x86_64
new file mode 100755
index 000000000000..07d465bfb633
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.dylib-x86_64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry b/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry
new file mode 100644
index 000000000000..afdd0838c911
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/nofirst-symbol.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/nofirst-symbol.macho-x86_64
new file mode 100644
index 000000000000..4d1ef25e6769
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/nofirst-symbol.macho-x86_64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/note.macho-x86 b/test/tools/llvm-objdump/X86/Inputs/note.macho-x86
new file mode 100644
index 000000000000..588a09d1e343
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/note.macho-x86
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64 b/test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64
new file mode 100644
index 000000000000..dab75bf96692
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/phdr-note.elf-x86-64 b/test/tools/llvm-objdump/X86/Inputs/phdr-note.elf-x86-64
new file mode 100644
index 000000000000..2825c6840ca8
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/phdr-note.elf-x86-64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64 b/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64
new file mode 100644
index 000000000000..078574ab5801
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so b/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so
new file mode 100644
index 000000000000..b88b77501d9f
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/stub-nosyms.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/stub-nosyms.macho-x86_64
new file mode 100644
index 000000000000..a7f122b55084
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/stub-nosyms.macho-x86_64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386
new file mode 100755
index 000000000000..f4b805d9b032
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml b/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml
new file mode 100644
index 000000000000..a81bb2dea600
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml
@@ -0,0 +1,44 @@
+# RUN: yaml2obj %s | not llvm-objdump -macho -private-headers -
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x01000007
+ cpusubtype: 0x00000003
+ filetype: 0x00000004
+ ncmds: 2
+ sizeofcmds: 192
+ flags: 0x00000000
+ reserved: 0
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 152
+ segname: __TEXT
+ vmaddr: 4294967296
+ vmsize: 8192
+ fileoff: 0
+ filesize: 3099
+ maxprot: 7
+ initprot: 5
+ nsects: 1
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0000000100001160
+ size: 3099
+ offset: 0x00001160
+ align: 4
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x80000400
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 80
+ platform: 2
+ minos: 0x00080000
+ sdk: 0x00090000
+ ntools: 0
+...
diff --git a/test/tools/llvm-objdump/X86/macho-build-version.yaml b/test/tools/llvm-objdump/X86/macho-build-version.yaml
new file mode 100644
index 000000000000..acefb6956d11
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-build-version.yaml
@@ -0,0 +1,57 @@
+# RUN: yaml2obj %s | llvm-objdump -macho -private-headers - | FileCheck %s
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x01000007
+ cpusubtype: 0x00000003
+ filetype: 0x00000004
+ ncmds: 2
+ sizeofcmds: 192
+ flags: 0x00000000
+ reserved: 0
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 152
+ segname: __TEXT
+ vmaddr: 4294967296
+ vmsize: 8192
+ fileoff: 0
+ filesize: 3099
+ maxprot: 7
+ initprot: 5
+ nsects: 1
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0000000100001160
+ size: 3099
+ offset: 0x00001160
+ align: 4
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x80000400
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 32
+ platform: 2
+ minos: 0x00080000
+ sdk: 0x00090000
+ ntools: 1
+ Tools:
+ - tool: 1
+ version: 0x00000000
+...
+
+CHECK: Load command 1
+CHECK-NEXT: cmd LC_BUILD_VERSION
+CHECK-NEXT: cmdsize 32
+CHECK-NEXT: platform ios
+CHECK-NEXT: sdk 9.0
+CHECK-NEXT: minos 8.0
+CHECK-NEXT: ntools 1
+CHECK-NEXT: tool clang
+CHECK-NEXT: version n/a
diff --git a/test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test b/test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test
new file mode 100644
index 000000000000..12ad166c5a2f
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test
@@ -0,0 +1,10 @@
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -info-plist - | FileCheck %s
+
+.section __TEXT, __info_plist
+.ascii "This is the (__TEXT,__info_plist) section\n"
+.section __TEXT, __follow
+.asciz "This is the (__TEXT,__follow) section\n"
+
+# CHECK: Contents of (__TEXT,__info_plist) section
+# CHECK: This is the (__TEXT,__info_plist) section
+# CHECK-NOT: This is the (__TEXT,__follow) section
diff --git a/test/tools/llvm-objdump/X86/macho-nofirst-symbol-disassembly.test b/test/tools/llvm-objdump/X86/macho-nofirst-symbol-disassembly.test
new file mode 100644
index 000000000000..98964ac8047a
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-nofirst-symbol-disassembly.test
@@ -0,0 +1,8 @@
+// RUN: llvm-objdump -d -m %p/Inputs/nofirst-symbol.macho-x86_64 | FileCheck %s
+
+CHECK: 0: 90 nop
+CHECK: _foo:
+CHECK: 1: c3 retq
+CHECK: _bar:
+CHECK: 2: 90 nop
+CHECK: 3: c3 retq
diff --git a/test/tools/llvm-objdump/X86/macho-objc-meta-data.test b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
index f4abf6cdb49e..0bdb39cdff84 100644
--- a/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
+++ b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
@@ -5,6 +5,7 @@
# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc1.32bit.exe.macho-i386 | FileCheck %s -check-prefix=OBJC1_32BIT_EXE
# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc1.32bit.obj.macho-i386 | FileCheck %s -check-prefix=OBJC1_32BIT_OBJ
# RUN: llvm-objdump -m -section __OBJC,__protocol %p/Inputs/Objc1.32bit.exe.macho-i386 | FileCheck %s -check-prefix=PROTOCOL
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.64bit.obj.dylib-x86_64 | FileCheck %s -check-prefix=OBJC2_64BIT_DYLIB
OBJC2_64BIT_EXE: Contents of (__DATA,__objc_classlist) section
OBJC2_64BIT_EXE: 0000000100002028 0x1000029f0
@@ -1037,3 +1038,64 @@ PROTOCOL: types 0x00002e04 @8@0:4
PROTOCOL: class_methods 0x00000000 (not in an __OBJC section)
PROTOCOL: instance_methods 0x00000000 (not in an __OBJC section)
PROTOCOL: class_methods 0x00000000 (not in an __OBJC section)
+
+OBJC2_64BIT_DYLIB: Contents of (__DATA_CONST,__objc_classlist) section
+OBJC2_64BIT_DYLIB: 000000000000c038 0x8030 _OBJC_CLASS_$_Test
+OBJC2_64BIT_DYLIB: isa 0x8008 _OBJC_METACLASS_$_Test
+OBJC2_64BIT_DYLIB: superclass 0x0
+OBJC2_64BIT_DYLIB: cache 0x0
+OBJC2_64BIT_DYLIB: vtable 0x0
+OBJC2_64BIT_DYLIB: data 0xc120 (struct class_ro_t *)
+OBJC2_64BIT_DYLIB: flags 0x0
+OBJC2_64BIT_DYLIB: instanceStart 8
+OBJC2_64BIT_DYLIB: instanceSize 16
+OBJC2_64BIT_DYLIB: reserved 0x0
+OBJC2_64BIT_DYLIB: ivarLayout 0x0
+OBJC2_64BIT_DYLIB: name 0x4f59 Test
+OBJC2_64BIT_DYLIB: baseMethods 0xc090 (struct method_list_t *)
+OBJC2_64BIT_DYLIB: entsize 24
+OBJC2_64BIT_DYLIB: count 3
+OBJC2_64BIT_DYLIB: name 0x4f5e testMethod
+OBJC2_64BIT_DYLIB: types 0x4f89 v16@0:8
+OBJC2_64BIT_DYLIB: imp -[Test testMethod]
+OBJC2_64BIT_DYLIB: name 0x4f69 testProp
+OBJC2_64BIT_DYLIB: types 0x4f91 Q16@0:8
+OBJC2_64BIT_DYLIB: imp -[Test testProp]
+OBJC2_64BIT_DYLIB: name 0x4f72 setTestProp:
+OBJC2_64BIT_DYLIB: types 0x4f99 v24@0:8Q16
+OBJC2_64BIT_DYLIB: imp -[Test setTestProp:]
+OBJC2_64BIT_DYLIB: baseProtocols 0x0
+OBJC2_64BIT_DYLIB: ivars 0xc0e0
+OBJC2_64BIT_DYLIB: entsize 32
+OBJC2_64BIT_DYLIB: count 1
+OBJC2_64BIT_DYLIB: offset 0x8000 8
+OBJC2_64BIT_DYLIB: name 0x4f7f _testProp
+OBJC2_64BIT_DYLIB: type 0x4fa4 Q
+OBJC2_64BIT_DYLIB: alignment 3
+OBJC2_64BIT_DYLIB: size 8
+OBJC2_64BIT_DYLIB: weakIvarLayout 0x0
+OBJC2_64BIT_DYLIB: baseProperties 0xc108
+OBJC2_64BIT_DYLIB: entsize 16
+OBJC2_64BIT_DYLIB: count 1
+OBJC2_64BIT_DYLIB: name 0x4f42 testProp
+OBJC2_64BIT_DYLIB: attributes 0x4f4b TQ,V_testProp
+OBJC2_64BIT_DYLIB: Meta Class
+OBJC2_64BIT_DYLIB: isa 0x0
+OBJC2_64BIT_DYLIB: superclass 0x0
+OBJC2_64BIT_DYLIB: cache 0x0
+OBJC2_64BIT_DYLIB: vtable 0x0
+OBJC2_64BIT_DYLIB: data 0xc048 (struct class_ro_t *)
+OBJC2_64BIT_DYLIB: flags 0x1 RO_META
+OBJC2_64BIT_DYLIB: instanceStart 40
+OBJC2_64BIT_DYLIB: instanceSize 40
+OBJC2_64BIT_DYLIB: reserved 0x0
+OBJC2_64BIT_DYLIB: ivarLayout 0x0
+OBJC2_64BIT_DYLIB: name 0x4f59 Test
+OBJC2_64BIT_DYLIB: baseMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_DYLIB: baseProtocols 0x0
+OBJC2_64BIT_DYLIB: ivars 0x0
+OBJC2_64BIT_DYLIB: weakIvarLayout 0x0
+OBJC2_64BIT_DYLIB: baseProperties 0x0
+OBJC2_64BIT_DYLIB: Contents of (__DATA_CONST,__objc_imageinfo) section
+OBJC2_64BIT_DYLIB: version 0
+OBJC2_64BIT_DYLIB: flags 0x40
diff --git a/test/tools/llvm-objdump/X86/macho-print-thread.test b/test/tools/llvm-objdump/X86/macho-print-thread.test
new file mode 100644
index 000000000000..12f71de1db2f
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-print-thread.test
@@ -0,0 +1,11 @@
+RUN: llvm-objdump -macho -private-headers %p/Inputs/thread.macho-i386 | FileCheck %s
+
+CHECK: Load command 9
+CHECK: cmd LC_UNIXTHREAD
+CHECK: cmdsize 80
+CHECK: flavor i386_THREAD_STATE
+CHECK: count i386_THREAD_STATE_COUNT
+CHECK: eax 0x00000000 ebx 0x00000000 ecx 0x00000000 edx 0x00000000
+CHECK: edi 0x00000000 esi 0x00000000 ebp 0x00000000 esp 0x00000000
+CHECK: ss 0x00000000 eflags 0x00000000 eip 0x00001db0 cs 0x00000000
+CHECK: ds 0x00000000 es 0x00000000 fs 0x00000000 gs 0x00000000
diff --git a/test/tools/llvm-objdump/X86/macho-private-headers.test b/test/tools/llvm-objdump/X86/macho-private-headers.test
index e0c68d7cd97a..d1ea0cf140b7 100644
--- a/test/tools/llvm-objdump/X86/macho-private-headers.test
+++ b/test/tools/llvm-objdump/X86/macho-private-headers.test
@@ -23,6 +23,8 @@
// RUN: | FileCheck %s -check-prefix=NON_VERBOSE
// RUN: llvm-objdump -p %p/Inputs/codesig.macho-x86_64 \
// RUN: | FileCheck %s -check-prefix=CODESIG
+// RUN: llvm-objdump -p %p/Inputs/note.macho-x86 \
+// RUN: | FileCheck %s -check-prefix=NOTE
CHECK: Mach header
CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
@@ -544,3 +546,9 @@ CODESIG: cmd LC_CODE_SIGNATURE
CODESIG: cmdsize 16
CODESIG: dataoff 8496
CODESIG: datasize 64
+
+NOTE: cmd LC_NOTE
+NOTE: cmdsize 40
+NOTE: data_owner DATA OWNER
+NOTE: offset 68
+NOTE: size 8
diff --git a/test/tools/llvm-objdump/X86/macho-stub-nosyms-disassembly.test b/test/tools/llvm-objdump/X86/macho-stub-nosyms-disassembly.test
new file mode 100644
index 000000000000..af66b0e7a63f
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-stub-nosyms-disassembly.test
@@ -0,0 +1,3 @@
+// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/stub-nosyms.macho-x86_64 | FileCheck %s
+
+CHECK: 0000000000000001 callq 0x7 ## symbol stub for: _foo
diff --git a/test/tools/llvm-objdump/X86/malformed-machos.test b/test/tools/llvm-objdump/X86/malformed-machos.test
index 83ebfc4364e6..292666a37254 100644
--- a/test/tools/llvm-objdump/X86/malformed-machos.test
+++ b/test/tools/llvm-objdump/X86/malformed-machos.test
@@ -63,3 +63,6 @@ INVALID-SYMBOL-STRX-UNIVERSAL: macho-invalid-symbol-strx-universal' (for archite
RUN: not llvm-objdump -macho -disassemble %p/Inputs/macho-invalid-symbol-lib_ordinal 2>&1 | FileCheck -check-prefix INVALID-SYMBOL-LIB_ORDINAL %s
INVALID-SYMBOL-LIB_ORDINAL: macho-invalid-symbol-lib_ordinal': truncated or malformed object (bad library ordinal: 7 for symbol at index 2)
+
+RUN: not llvm-objdump -macho -objc-meta-data %p/Inputs/macho-invalid-bind-entry 2>&1 | FileCheck -check-prefix INVALID-BIND-ENTRY %s
+INVALID-BIND-ENTRY: macho-invalid-bind-entry': truncated or malformed object (for BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB bad library ordinal: 83 (max 0) for opcode at: 0x0)
diff --git a/test/tools/llvm-objdump/X86/openbsd-headers.test b/test/tools/llvm-objdump/X86/openbsd-headers.test
index 48f496ca616e..fb6072efabb7 100644
--- a/test/tools/llvm-objdump/X86/openbsd-headers.test
+++ b/test/tools/llvm-objdump/X86/openbsd-headers.test
@@ -9,7 +9,7 @@
## 0x65a3dbe7 is the value of PT_OPENBSD_WXNEEDED,
## 0x65a41be6 is the value of PT_OPENBSD_BOOTDATA
## SECTIONS { . = SIZEOF_HEADERS; .all : { *(.*) } : text }
-RUN: llvm-objdump -p %p/../../../Object/Inputs/openbsd-phdrs.elf-x86-64 \
+RUN: llvm-objdump -p %p/Inputs/openbsd-phdrs.elf-x86-64 \
RUN: | FileCheck %s
CHECK: OPENBSD_RANDOMIZE off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3
diff --git a/test/tools/llvm-objdump/X86/phdrs.test b/test/tools/llvm-objdump/X86/phdrs.test
index 646f6af8733a..63b8fdeb6ef6 100644
--- a/test/tools/llvm-objdump/X86/phdrs.test
+++ b/test/tools/llvm-objdump/X86/phdrs.test
@@ -11,7 +11,7 @@
## d:
## .long 2
##
-RUN: llvm-objdump -p %p/../../../Object/Inputs/phdrs.elf-x86-64 \
+RUN: llvm-objdump -p %p/Inputs/phdrs.elf-x86-64 \
RUN: | FileCheck %s
CHECK: RELRO off 0x0000000000001000 vaddr 0x0000000000201000 paddr 0x0000000000201000 align 2**0
@@ -25,7 +25,7 @@ CHECK-NEXT: filesz 0x0000000000000004 memsz 0x0000000000001000 flags r--
## .section .note.test,"a",@note
## .quad 42
-RUN: llvm-objdump -p %p/../../../Object/Inputs/phdr-note.elf-x86-64 \
+RUN: llvm-objdump -p %p/Inputs/phdr-note.elf-x86-64 \
RUN: | FileCheck %s --check-prefix=NOTE
NOTE: NOTE off 0x0000000000000200 vaddr 0x0000000000000200 paddr 0x0000000000000200 align 2**0
diff --git a/test/tools/llvm-objdump/X86/stripped-shared.test b/test/tools/llvm-objdump/X86/stripped-shared.test
new file mode 100644
index 000000000000..c57155f4cd7b
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/stripped-shared.test
@@ -0,0 +1,10 @@
+// This test checks that dynamic symbols are used when disassembling elf files.
+// RUN: llvm-objdump -d %p/Inputs/stripped-elf.so | FileCheck %s
+
+# CHECK: .init
+# CHECK: .plt
+# CHECK: .text
+# CHECK: func0
+# CHECK: func1
+# CHECK: func2
+# CHECK: .fini