diff options
author | Stephen Hines <srhines@google.com> | 2015-03-23 12:10:34 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2015-03-23 12:10:34 -0700 |
commit | ebe69fe11e48d322045d5949c83283927a0d790b (patch) | |
tree | c92f1907a6b8006628a4b01615f38264d29834ea /test/Object | |
parent | b7d2e72b02a4cb8034f32f8247a2558d2434e121 (diff) | |
download | external_llvm-ebe69fe11e48d322045d5949c83283927a0d790b.zip external_llvm-ebe69fe11e48d322045d5949c83283927a0d790b.tar.gz external_llvm-ebe69fe11e48d322045d5949c83283927a0d790b.tar.bz2 |
Update aosp/master LLVM for rebase to r230699.
Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
Diffstat (limited to 'test/Object')
31 files changed, 266 insertions, 10 deletions
diff --git a/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml b/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml index 6147025..c27e888 100644 --- a/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml +++ b/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml @@ -10,7 +10,9 @@ # CHECK-NEXT: - Offset: 0x0000000000000000 # CHECK-NEXT: Symbol: main # CHECK-NEXT: Type: R_AARCH64_ABS64 -# CHECK-NEXT: Addend: 0 +# CHECK-NEXT: - Offset: 0x0000000000000008 +# CHECK-NEXT: Symbol: main +# CHECK-NEXT: Type: R_AARCH64_TLSGD_ADR_PREL21 FileHeader: Class: ELFCLASS64 @@ -22,7 +24,7 @@ Sections: Name: .text Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x04 - Content: 0000000000000000 + Content: 00000000000000000000000000000000 - Type: SHT_RELA Name: .rela.text Link: .symtab @@ -33,6 +35,10 @@ Sections: Symbol: main Type: R_AARCH64_ABS64 Addend: 0 + - Offset: 8 + Symbol: main + Type: R_AARCH64_TLSGD_ADR_PREL21 + Addend: 0 Symbols: Local: diff --git a/test/Object/Inputs/archive-test.a-irix6-mips64el b/test/Object/Inputs/archive-test.a-irix6-mips64el Binary files differnew file mode 100644 index 0000000..ccc2634 --- /dev/null +++ b/test/Object/Inputs/archive-test.a-irix6-mips64el diff --git a/test/Object/Inputs/macho-invalid-bad-symbol-index b/test/Object/Inputs/macho-invalid-bad-symbol-index Binary files differnew file mode 100644 index 0000000..294bbde --- /dev/null +++ b/test/Object/Inputs/macho-invalid-bad-symbol-index diff --git a/test/Object/Inputs/macho-invalid-getsection-index b/test/Object/Inputs/macho-invalid-getsection-index Binary files differnew file mode 100644 index 0000000..b7e4b95 --- /dev/null +++ b/test/Object/Inputs/macho-invalid-getsection-index diff --git a/test/Object/Inputs/macho-invalid-no-size-for-sections b/test/Object/Inputs/macho-invalid-no-size-for-sections Binary files differnew file mode 100644 index 0000000..89fa95a --- /dev/null +++ b/test/Object/Inputs/macho-invalid-no-size-for-sections diff --git a/test/Object/Inputs/macho-invalid-section-index-getSectionRawFinalSegmentName b/test/Object/Inputs/macho-invalid-section-index-getSectionRawFinalSegmentName Binary files differnew file mode 100644 index 0000000..e3f6586 --- /dev/null +++ b/test/Object/Inputs/macho-invalid-section-index-getSectionRawFinalSegmentName diff --git a/test/Object/Inputs/macho-invalid-section-index-getSectionRawName b/test/Object/Inputs/macho-invalid-section-index-getSectionRawName Binary files differnew file mode 100644 index 0000000..9cd3e1c --- /dev/null +++ b/test/Object/Inputs/macho-invalid-section-index-getSectionRawName diff --git a/test/Object/Inputs/macho-invalid-symbol-name-past-eof b/test/Object/Inputs/macho-invalid-symbol-name-past-eof Binary files differnew file mode 100644 index 0000000..8747884 --- /dev/null +++ b/test/Object/Inputs/macho-invalid-symbol-name-past-eof diff --git a/test/Object/Inputs/macho-invalid-too-small-load-command b/test/Object/Inputs/macho-invalid-too-small-load-command Binary files differnew file mode 100644 index 0000000..3602169 --- /dev/null +++ b/test/Object/Inputs/macho-invalid-too-small-load-command diff --git a/test/Object/Inputs/macho-invalid-too-small-segment-load-command b/test/Object/Inputs/macho-invalid-too-small-segment-load-command Binary files differnew file mode 100644 index 0000000..8cbfbf9 --- /dev/null +++ b/test/Object/Inputs/macho-invalid-too-small-segment-load-command diff --git a/test/Object/Inputs/macho-invalid-zero-ncmds b/test/Object/Inputs/macho-invalid-zero-ncmds Binary files differnew file mode 100644 index 0000000..0505419 --- /dev/null +++ b/test/Object/Inputs/macho-invalid-zero-ncmds diff --git a/test/Object/Inputs/macho-no-exports.dylib b/test/Object/Inputs/macho-no-exports.dylib Binary files differnew file mode 100755 index 0000000..6e1be6c --- /dev/null +++ b/test/Object/Inputs/macho-no-exports.dylib diff --git a/test/Object/Inputs/macho-rpath-x86_64 b/test/Object/Inputs/macho-rpath-x86_64 Binary files differnew file mode 100755 index 0000000..c518fcd --- /dev/null +++ b/test/Object/Inputs/macho-rpath-x86_64 diff --git a/test/Object/Inputs/macho64-invalid-getsection-index b/test/Object/Inputs/macho64-invalid-getsection-index Binary files differnew file mode 100644 index 0000000..a2a7bc1 --- /dev/null +++ b/test/Object/Inputs/macho64-invalid-getsection-index diff --git a/test/Object/Inputs/macho64-invalid-incomplete-load-command b/test/Object/Inputs/macho64-invalid-incomplete-load-command Binary files differnew file mode 100644 index 0000000..a569c9e --- /dev/null +++ b/test/Object/Inputs/macho64-invalid-incomplete-load-command diff --git a/test/Object/Inputs/macho64-invalid-no-size-for-sections b/test/Object/Inputs/macho64-invalid-no-size-for-sections Binary files differnew file mode 100644 index 0000000..5aae5ff --- /dev/null +++ b/test/Object/Inputs/macho64-invalid-no-size-for-sections diff --git a/test/Object/Inputs/macho64-invalid-too-small-load-command b/test/Object/Inputs/macho64-invalid-too-small-load-command Binary files differnew file mode 100644 index 0000000..0028451 --- /dev/null +++ b/test/Object/Inputs/macho64-invalid-too-small-load-command diff --git a/test/Object/Inputs/macho64-invalid-too-small-segment-load-command b/test/Object/Inputs/macho64-invalid-too-small-segment-load-command Binary files differnew file mode 100644 index 0000000..ce6a201 --- /dev/null +++ b/test/Object/Inputs/macho64-invalid-too-small-segment-load-command diff --git a/test/Object/Inputs/micro-mips.elf-mipsel b/test/Object/Inputs/micro-mips.elf-mipsel Binary files differnew file mode 100755 index 0000000..80b8472 --- /dev/null +++ b/test/Object/Inputs/micro-mips.elf-mipsel diff --git a/test/Object/Inputs/sectionGroup.elf.x86-64 b/test/Object/Inputs/sectionGroup.elf.x86-64 Binary files differnew file mode 100644 index 0000000..b88ad0c --- /dev/null +++ b/test/Object/Inputs/sectionGroup.elf.x86-64 diff --git a/test/Object/Inputs/thin.a b/test/Object/Inputs/thin.a Binary files differnew file mode 100644 index 0000000..bb9d532 --- /dev/null +++ b/test/Object/Inputs/thin.a diff --git a/test/Object/Mips/elf-mips64-rel.yaml b/test/Object/Mips/elf-mips64-rel.yaml new file mode 100644 index 0000000..8b59509 --- /dev/null +++ b/test/Object/Mips/elf-mips64-rel.yaml @@ -0,0 +1,113 @@ +# RUN: yaml2obj -format=elf %s > %t +# RUN: llvm-readobj -r %t | FileCheck -check-prefix=OBJ %s +# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s + +# OBJ: Relocations [ +# OBJ-NEXT: Section (2) .rela.text { +# OBJ-NEXT: 0x14 R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 main 0x4 +# OBJ-NEXT: 0x1C R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 main 0x8 +# OBJ-NEXT: 0x20 R_MIPS_GOT_PAGE/R_MIPS_NONE/R_MIPS_NONE .rodata 0x0 +# OBJ-NEXT: 0x24 R_MIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE .rodata 0x0 +# OBJ-NEXT: 0x28 R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE printf 0x0 +# OBJ-NEXT: 0x30 R_MIPS_GPREL16/R_MIPS_LO16/R_MIPS_NONE printf 0x0 +# OBJ-NEXT: } +# OBJ-NEXT: ] + +# YAML: Relocations: +# YAML-NEXT: - Offset: 0x0000000000000014 +# YAML-NEXT: Symbol: main +# YAML-NEXT: Type: R_MIPS_GPREL16 +# YAML-NEXT: Type2: R_MIPS_SUB +# YAML-NEXT: Type3: R_MIPS_HI16 +# YAML-NEXT: Addend: 4 +# YAML-NEXT: - Offset: 0x000000000000001C +# YAML-NEXT: Symbol: main +# YAML-NEXT: Type: R_MIPS_GPREL16 +# YAML-NEXT: Type2: R_MIPS_SUB +# YAML-NEXT: Type3: R_MIPS_LO16 +# YAML-NEXT: Addend: 8 +# YAML-NEXT: - Offset: 0x0000000000000020 +# YAML-NEXT: Symbol: .rodata +# YAML-NEXT: Type: R_MIPS_GOT_PAGE +# YAML-NEXT: - Offset: 0x0000000000000024 +# YAML-NEXT: Symbol: .rodata +# YAML-NEXT: Type: R_MIPS_GOT_OFST +# YAML-NEXT: - Offset: 0x0000000000000028 +# YAML-NEXT: Symbol: printf +# YAML-NEXT: Type: R_MIPS_CALL16 +# YAML-NEXT: - Offset: 0x0000000000000030 +# YAML-NEXT: Symbol: printf +# YAML-NEXT: Type: R_MIPS_GPREL16 +# YAML-NEXT: Type2: R_MIPS_LO16 +# YAML-NEXT: SpecSym: RSS_GP0 + +--- +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_MIPS + Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, + EF_MIPS_NOREORDER, EF_MIPS_ARCH_64R2 ] +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + AddressAlign: 0x10 + Size: 0x60 + - Name: .rela.text + Type: SHT_RELA + Flags: [ SHF_INFO_LINK ] + Info: .text + Relocations: + - Offset: 0x14 + Symbol: main + Type: R_MIPS_GPREL16 + Type2: R_MIPS_SUB + Type3: R_MIPS_HI16 + Addend: 4 + - Offset: 0x1C + Symbol: main + Type: R_MIPS_GPREL16 + Type2: R_MIPS_SUB + Type3: R_MIPS_LO16 + Addend: 8 + - Offset: 0x20 + Symbol: .rodata + Type: R_MIPS_GOT_PAGE + Addend: 0 + - Offset: 0x24 + Symbol: .rodata + Type: R_MIPS_GOT_OFST + Addend: 0 + - Offset: 0x28 + Symbol: printf + Type: R_MIPS_CALL16 + Addend: 0 + - Offset: 0x30 + Symbol: printf + Type: R_MIPS_GPREL16 + Type2: R_MIPS_LO16 + SpecSym: RSS_GP0 + Addend: 0 + - Name: .rodata + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + AddressAlign: 0x10 + Size: 0x0F + +Symbols: + Local: + - Name: .text + Type: STT_SECTION + Section: .text + - Name: .rodata + Type: STT_SECTION + Section: .rodata + Global: + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x58 + - Name: printf +... diff --git a/test/Object/Mips/objdump-micro-mips.test b/test/Object/Mips/objdump-micro-mips.test new file mode 100644 index 0000000..0f28dc1 --- /dev/null +++ b/test/Object/Mips/objdump-micro-mips.test @@ -0,0 +1,12 @@ +RUN: llvm-objdump -d -mattr=micromips %p/../Inputs/micro-mips.elf-mipsel \ +RUN: | FileCheck %s + +CHECK: foo: +CHECK-NEXT: 330: bd 33 f8 ff addiu $sp, $sp, -8 +CHECK-NEXT: 334: dd fb 04 00 sw $fp, 4($sp) +CHECK-NEXT: 338: 1d 00 50 f1 addu $fp, $sp, $zero + +CHECK: bar: +CHECK-NEXT: 350: a2 41 02 00 lui $2, 2 +CHECK-NEXT: 354: 42 30 8f 80 addiu $2, $2, -32625 +CHECK-NEXT: 358: bd 33 e8 ff addiu $sp, $sp, -24 diff --git a/test/Object/archive-toc.test b/test/Object/archive-toc.test index 4195c40..79a6e0e 100644 --- a/test/Object/archive-toc.test +++ b/test/Object/archive-toc.test @@ -26,3 +26,11 @@ CHECK: rw-r--r-- 1002/102 8 2004-11-19 03:24:02.000000000 evenlen CHECK-NEXT: rw-r--r-- 1002/102 7 2004-11-19 03:24:02.000000000 oddlen CHECK-NEXT: rwxr-xr-x 1002/102 1465 2004-11-19 03:24:02.000000000 very_long_bytecode_file_name.bc CHECK-NEXT: rw-r--r-- 1002/102 2280 2004-11-19 03:24:02.000000000 IsNAN.o + +Test reading a thin archive created by gnu ar +RUN: env TZ=GMT llvm-ar tv %p/Inputs/thin.a | FileCheck %s --check-prefix=THIN -strict-whitespace + +THIN: rw-r--r-- 1000/1000 8 2014-12-16 00:56:27.000000000 evenlen +THIN-NEXT: rw-r--r-- 1000/1000 7 2014-12-16 00:56:27.000000000 oddlen +THIN-NEXT: rwxr-xr-x 1000/1000 1465 2014-12-16 00:56:27.000000000 very_long_bytecode_file_name.bc +THIN-NEXT: rw-r--r-- 1000/1000 2280 2014-12-16 00:56:27.000000000 IsNAN.o diff --git a/test/Object/elf-unknown-type.test b/test/Object/elf-unknown-type.test new file mode 100644 index 0000000..9993c09 --- /dev/null +++ b/test/Object/elf-unknown-type.test @@ -0,0 +1,10 @@ +# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s + +!ELF +FileHeader: !FileHeader + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: 42 + Machine: EM_X86_64 + +# CHECK: Type: 0x2A diff --git a/test/Object/macho-invalid.test b/test/Object/macho-invalid.test new file mode 100644 index 0000000..ac4bbeb --- /dev/null +++ b/test/Object/macho-invalid.test @@ -0,0 +1,51 @@ +// No crash, might not be totally invalid +RUN: llvm-objdump -private-headers %p/Inputs/macho-invalid-zero-ncmds + +RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-incomplete-load-command 2>&1 \ +RUN: | FileCheck -check-prefix INCOMPLETE-LOADC %s + +RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-load-command 2>&1 \ +RUN: | FileCheck -check-prefix SMALL-LOADC-SIZE %s +RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-too-small-load-command 2>&1 \ +RUN: | FileCheck -check-prefix SMALL-LOADC-SIZE %s + +RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-segment-load-command 2>&1 \ +RUN: | FileCheck -check-prefix SMALL-SEGLOADC-SIZE %s +RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-too-small-segment-load-command 2>&1 \ +RUN: | FileCheck -check-prefix SMALL-SEGLOADC-SIZE %s + +RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-no-size-for-sections 2>&1 \ +RUN: | FileCheck -check-prefix TOO-MANY-SECTS %s +RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-no-size-for-sections 2>&1 \ +RUN: | FileCheck -check-prefix TOO-MANY-SECTS %s + +RUN: not llvm-objdump -t %p/Inputs/macho-invalid-bad-symbol-index 2>&1 \ +RUN: | FileCheck -check-prefix BAD-SYMBOL %s + +RUN: not llvm-objdump -t %p/Inputs/macho-invalid-symbol-name-past-eof 2>&1 \ +RUN: | FileCheck -check-prefix NAME-PAST-EOF %s + +RUN: not llvm-objdump -t %p/Inputs/macho-invalid-section-index-getSectionRawFinalSegmentName 2>&1 \ +RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SEG-NAME %s + +RUN: not llvm-nm %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \ +RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SECT-NAME %s + +RUN: not llvm-objdump -t %p/Inputs/macho-invalid-getsection-index 2>&1 \ +RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-GETSECT %s + +RUN: not llvm-objdump -t %p/Inputs/macho64-invalid-getsection-index 2>&1 \ +RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-GETSECT64 %s + + +SMALL-LOADC-SIZE: Load command with size < 8 bytes +SMALL-SEGLOADC-SIZE: Segment load command size is too small +INCOMPLETE-LOADC: Malformed MachO file +TOO-MANY-SECTS: Number of sections too large for size of load command +BAD-SYMBOL: Requested symbol index is out of range +NAME-PAST-EOF: Symbol name entry points before beginning or past end of file + +INVALID-SECTION-IDX-SEG-NAME: getSectionRawFinalSegmentName: Invalid section index +INVALID-SECTION-IDX-SECT-NAME: getSectionRawName: Invalid section index +INVALID-SECTION-IDX-GETSECT: getSection: Invalid section index +INVALID-SECTION-IDX-GETSECT64: getSection64: Invalid section index diff --git a/test/Object/nm-irix6.test b/test/Object/nm-irix6.test new file mode 100644 index 0000000..047665c --- /dev/null +++ b/test/Object/nm-irix6.test @@ -0,0 +1,27 @@ +# Check reading IRIX 6.0 64-bit archive file. +RUN: llvm-nm %p/Inputs/archive-test.a-irix6-mips64el | FileCheck %s + +CHECK: f1.o: +CHECK-NEXT: 00000028 T f1 +CHECK-NEXT: 00000000 d s_d +CHECK-NEXT: 00000000 t s_foo + +CHECK: f2.o: +CHECK-NEXT: 00000028 T f2 +CHECK-NEXT: 00000000 d s_d +CHECK-NEXT: 00000000 t s_foo + +CHECK: f3.o: +CHECK-NEXT: 00000028 T f3 +CHECK-NEXT: 00000000 d s_d +CHECK-NEXT: 00000000 t s_foo + +CHECK: f4.o: +CHECK-NEXT: 00000028 T f4 +CHECK-NEXT: 00000000 d s_d +CHECK-NEXT: 00000000 t s_foo + +CHECK: f5.o: +CHECK-NEXT: 00000028 T f5 +CHECK-NEXT: 00000000 d s_d +CHECK-NEXT: 00000000 t s_foo diff --git a/test/Object/obj2yaml-sectiongroup.test b/test/Object/obj2yaml-sectiongroup.test new file mode 100644 index 0000000..66e8e38 --- /dev/null +++ b/test/Object/obj2yaml-sectiongroup.test @@ -0,0 +1,26 @@ +# Checks that the tool is able to read section groups with ELF. +RUN: obj2yaml %p/Inputs/sectionGroup.elf.x86-64 > %t1.sectiongroup.yaml +RUN: FileCheck %s --check-prefix ELF-GROUP < %t1.sectiongroup.yaml +RUN: yaml2obj -format=elf %t1.sectiongroup.yaml -o %t2.o.elf +RUN: llvm-readobj -sections %t2.o.elf | FileCheck %s -check-prefix=SECTIONS +#ELF-GROUP: - Name: .group +#ELF-GROUP: Type: SHT_GROUP +#ELF-GROUP: Link: .symtab +#ELF-GROUP: Info: a +#ELF-GROUP: Members: +#ELF-GROUP: - SectionOrType: GRP_COMDAT +#ELF-GROUP: - SectionOrType: .rodata.a +#SECTIONS: Format: ELF64-x86-64 +#SECTIONS: Arch: x86_64 +#SECTIONS: AddressSize: 64bit +#SECTIONS: Section { +#SECTIONS: Index: 1 +#SECTIONS: Name: .group (21) +#SECTIONS: Type: SHT_GROUP (0x11) +#SECTIONS: Flags [ (0x0) +#SECTIONS: ] +#SECTIONS: Address: 0x0 +#SECTIONS: Size: 8 +#SECTIONS: AddressAlignment: 4 +#SECTIONS: EntrySize: 4 +#SECTIONS: } diff --git a/test/Object/obj2yaml.test b/test/Object/obj2yaml.test index 1c79e98..e654dcd 100644 --- a/test/Object/obj2yaml.test +++ b/test/Object/obj2yaml.test @@ -210,27 +210,21 @@ ELF-MIPSEL-NEXT: Relocations: ELF-MIPSEL-NEXT: - Offset: 0x0000000000000000 ELF-MIPSEL-NEXT: Symbol: _gp_disp ELF-MIPSEL-NEXT: Type: R_MIPS_HI16 -ELF-MIPSEL-NEXT: Addend: 0 ELF-MIPSEL-NEXT: - Offset: 0x0000000000000004 ELF-MIPSEL-NEXT: Symbol: _gp_disp ELF-MIPSEL-NEXT: Type: R_MIPS_LO16 -ELF-MIPSEL-NEXT: Addend: 0 ELF-MIPSEL-NEXT: - Offset: 0x0000000000000018 ELF-MIPSEL-NEXT: Symbol: '$.str' ELF-MIPSEL-NEXT: Type: R_MIPS_GOT16 -ELF-MIPSEL-NEXT: Addend: 0 ELF-MIPSEL-NEXT: - Offset: 0x000000000000001C ELF-MIPSEL-NEXT: Symbol: '$.str' ELF-MIPSEL-NEXT: Type: R_MIPS_LO16 -ELF-MIPSEL-NEXT: Addend: 0 ELF-MIPSEL-NEXT: - Offset: 0x0000000000000020 ELF-MIPSEL-NEXT: Symbol: puts ELF-MIPSEL-NEXT: Type: R_MIPS_CALL16 -ELF-MIPSEL-NEXT: Addend: 0 ELF-MIPSEL-NEXT: - Offset: 0x000000000000002C ELF-MIPSEL-NEXT: Symbol: SomeOtherFunction ELF-MIPSEL-NEXT: Type: R_MIPS_CALL16 -ELF-MIPSEL-NEXT: Addend: 0 ELF-MIPSEL-NEXT: - Name: .data ELF-MIPSEL-NEXT: Type: SHT_PROGBITS ELF-MIPSEL-NEXT: Flags: [ SHF_WRITE, SHF_ALLOC ] @@ -328,7 +322,6 @@ ELF-MIPS64EL-NEXT: Relocations: ELF-MIPS64EL-NEXT: - Offset: 0 ELF-MIPS64EL-NEXT: Symbol: zed ELF-MIPS64EL-NEXT: Type: R_MIPS_64 -ELF-MIPS64EL-NEXT: Addend: 0 ELF-MIPS64EL-NEXT: - Name: .bss ELF-MIPS64EL-NEXT: Type: SHT_NOBITS ELF-MIPS64EL-NEXT: Flags: [ SHF_WRITE, SHF_ALLOC ] @@ -398,7 +391,6 @@ ELF-X86-64-NEXT: Relocations: ELF-X86-64-NEXT: - Offset: 0x000000000000000D ELF-X86-64-NEXT: Symbol: .rodata.str1.1 ELF-X86-64-NEXT: Type: R_X86_64_32S -ELF-X86-64-NEXT: Addend: 0 ELF-X86-64-NEXT: - Offset: 0x0000000000000012 ELF-X86-64-NEXT: Symbol: puts ELF-X86-64-NEXT: Type: R_X86_64_PC32 diff --git a/test/Object/objdump-export-list.test b/test/Object/objdump-export-list.test new file mode 100644 index 0000000..74344c1 --- /dev/null +++ b/test/Object/objdump-export-list.test @@ -0,0 +1,4 @@ +RUN: llvm-objdump -exports-trie %p/Inputs/macho-no-exports.dylib | FileCheck %s + +; Test that we don't crash with an empty export list. +CHECK: macho-no-exports.dylib: file format Mach-O 64-bit x86-64 diff --git a/test/Object/objdump-private-headers.test b/test/Object/objdump-private-headers.test index c562044..d311bec 100644 --- a/test/Object/objdump-private-headers.test +++ b/test/Object/objdump-private-headers.test @@ -2,6 +2,8 @@ RUN: llvm-objdump -p %p/Inputs/program-headers.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF-i386 RUN: llvm-objdump -p %p/Inputs/program-headers.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF-x86-64 +RUN: llvm-objdump -p %p/Inputs/macho-rpath-x86_64 \ +RUN: | FileCheck %s -check-prefix MACHO-x86_64 ELF-i386: Program Header: ELF-i386: LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12 @@ -16,3 +18,8 @@ ELF-x86-64: EH_FRAME off 0x00000000000000f4 vaddr 0x00000000004000f4 paddr 0x ELF-x86-64: filesz 0x0000000000000014 memsz 0x0000000000000014 flags r-- ELF-x86-64: STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3 ELF-x86-64: filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw- + +MACHO-x86_64: Load command 12 +MACHO-x86_64: cmd LC_RPATH +MACHO-x86_64: cmdsize 32 +MACHO-x86_64: path @executable_path/. (offset 12) |