diff options
Diffstat (limited to 'test/tools/llvm-objdump/X86')
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 Binary files differnew file mode 100755 index 000000000000..07d465bfb633 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.dylib-x86_64 diff --git a/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry b/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry Binary files differnew file mode 100644 index 000000000000..afdd0838c911 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry 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 Binary files differnew file mode 100644 index 000000000000..4d1ef25e6769 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/nofirst-symbol.macho-x86_64 diff --git a/test/tools/llvm-objdump/X86/Inputs/note.macho-x86 b/test/tools/llvm-objdump/X86/Inputs/note.macho-x86 Binary files differnew file mode 100644 index 000000000000..588a09d1e343 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/note.macho-x86 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 Binary files differnew file mode 100644 index 000000000000..dab75bf96692 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64 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 Binary files differnew file mode 100644 index 000000000000..2825c6840ca8 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/phdr-note.elf-x86-64 diff --git a/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64 b/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64 Binary files differnew file mode 100644 index 000000000000..078574ab5801 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64 diff --git a/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so b/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so Binary files differnew file mode 100644 index 000000000000..b88b77501d9f --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so 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 Binary files differnew file mode 100644 index 000000000000..a7f122b55084 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/stub-nosyms.macho-x86_64 diff --git a/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386 Binary files differnew file mode 100755 index 000000000000..f4b805d9b032 --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386 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 |