summaryrefslogtreecommitdiff
path: root/test/Object
diff options
context:
space:
mode:
Diffstat (limited to 'test/Object')
-rw-r--r--test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml3
-rw-r--r--test/Object/AMDGPU/elf-definitios.yaml7
-rw-r--r--test/Object/AMDGPU/elf32-unknown.yaml11
-rw-r--r--test/Object/AMDGPU/elf64-relocs.yaml66
-rw-r--r--test/Object/AMDGPU/elf64-unknown.yaml11
-rw-r--r--test/Object/AMDGPU/lit.local.cfg2
-rw-r--r--test/Object/AMDGPU/objdump.s75
-rw-r--r--test/Object/Inputs/COFF/i386.yaml1
-rw-r--r--test/Object/Inputs/COFF/long-file-symbol.yaml2
-rw-r--r--test/Object/Inputs/COFF/long-section-name.yaml2
-rw-r--r--test/Object/Inputs/COFF/section-aux-symbol.yaml2
-rw-r--r--test/Object/Inputs/COFF/weak-external.yaml2
-rw-r--r--test/Object/Inputs/COFF/weak-externals.yaml26
-rw-r--r--test/Object/Inputs/COFF/x86-64.yaml1
-rwxr-xr-xtest/Object/Inputs/dyn-rel.so.elf-mipsbin0 -> 1946 bytes
-rwxr-xr-xtest/Object/Inputs/invalid-sh_entsize.elfbin1736 -> 1736 bytes
-rw-r--r--test/Object/Inputs/macho-invalid-fatbin0 -> 8 bytes
-rw-r--r--test/Object/Inputs/macho-invalid-fat.obj.elf-x86_64bin0 -> 1516 bytes
-rw-r--r--test/Object/Inputs/macho-invalid-too-small-segment-load-command.1bin0 -> 84 bytes
-rw-r--r--test/Object/Inputs/macho-universal-archive-bad1.x86_64.i386bin0 -> 6132 bytes
-rw-r--r--test/Object/Inputs/macho-universal-archive-bad2.x86_64.i386bin0 -> 1672 bytes
-rw-r--r--test/Object/Inputs/macho-universal-bad1.x86_64.i386bin0 -> 12728 bytes
-rw-r--r--test/Object/Inputs/macho-universal-bad2.x86_64.i386bin0 -> 8256 bytes
-rw-r--r--test/Object/Inputs/macho-universal64-archive.x86_64.i386bin0 -> 1680 bytes
-rwxr-xr-xtest/Object/Inputs/macho-universal64.x86_64.i386bin0 -> 16624 bytes
-rw-r--r--test/Object/Inputs/macho-valid-0-nsymsbin0 -> 372 bytes
-rw-r--r--test/Object/Inputs/macho64-invalid-incomplete-load-command.1bin0 -> 68 bytes
-rw-r--r--test/Object/Inputs/macho64-invalid-too-small-load-command.1bin0 -> 88 bytes
-rw-r--r--test/Object/Lanai/lit.local.cfg2
-rw-r--r--test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml67
-rw-r--r--test/Object/Mips/abi-flags.yaml3
-rw-r--r--test/Object/Mips/elf-abi.yaml16
-rw-r--r--test/Object/Mips/elf-flags.yaml4
-rw-r--r--test/Object/Mips/elf-mips64-rel.yaml4
-rw-r--r--test/Object/Mips/feature.test3
-rw-r--r--test/Object/Mips/objdump-micro-mips.test3
-rw-r--r--test/Object/X86/nm-bitcodeweak.test10
-rw-r--r--test/Object/X86/nm-ir.ll4
-rw-r--r--test/Object/X86/yaml2obj-elf-x86-rel.yaml3
-rw-r--r--test/Object/archive-format.test3
-rw-r--r--test/Object/archive-symtab.test6
-rw-r--r--test/Object/archive-thin-read.test6
-rw-r--r--test/Object/coff-weak-externals.test5
-rw-r--r--test/Object/corrupt.test4
-rw-r--r--test/Object/dyn-rel-relocation.test71
-rw-r--r--test/Object/dynamic-reloc.test12
-rw-r--r--test/Object/elf-unknown-type.test2
-rw-r--r--test/Object/invalid.test4
-rw-r--r--test/Object/macho-invalid.test103
-rw-r--r--test/Object/nm-archive.test7
-rw-r--r--test/Object/nm-universal-binary.test19
-rw-r--r--test/Object/no-section-table.test2
-rw-r--r--test/Object/obj2yaml-sectiongroup.test2
-rw-r--r--test/Object/obj2yaml.test2
-rw-r--r--test/Object/relocation-executable.test12
-rw-r--r--test/Object/yaml2obj-coff-invalid-alignment.test14
-rw-r--r--test/Object/yaml2obj-coff-multi-doc.test10
-rw-r--r--test/Object/yaml2obj-elf-alignment.yaml4
-rw-r--r--test/Object/yaml2obj-elf-bits-endian.test8
-rw-r--r--test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml2
-rw-r--r--test/Object/yaml2obj-elf-file-headers.yaml2
-rw-r--r--test/Object/yaml2obj-elf-multi-doc.test6
-rw-r--r--test/Object/yaml2obj-elf-rel-noref.yaml2
-rw-r--r--test/Object/yaml2obj-elf-rel.yaml2
-rw-r--r--test/Object/yaml2obj-elf-section-basic.yaml4
-rw-r--r--test/Object/yaml2obj-elf-section-invalid-size.yaml2
-rw-r--r--test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml2
-rw-r--r--test/Object/yaml2obj-elf-symbol-basic.yaml2
-rw-r--r--test/Object/yaml2obj-elf-symbol-visibility.yaml20
69 files changed, 586 insertions, 84 deletions
diff --git a/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml b/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
index c27e888a47c08..e3017a24a97d4 100644
--- a/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
+++ b/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s > %t
+# RUN: yaml2obj %s > %t
# RUN: obj2yaml %t | FileCheck %s
# CHECK: - Name: .rela.text
@@ -14,6 +14,7 @@
# CHECK-NEXT: Symbol: main
# CHECK-NEXT: Type: R_AARCH64_TLSGD_ADR_PREL21
+!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
diff --git a/test/Object/AMDGPU/elf-definitios.yaml b/test/Object/AMDGPU/elf-definitios.yaml
index 5f5e200b49b33..819786aa19026 100644
--- a/test/Object/AMDGPU/elf-definitios.yaml
+++ b/test/Object/AMDGPU/elf-definitios.yaml
@@ -1,6 +1,8 @@
-# RUN: yaml2obj -format=elf %s > %t.o
+# RUN: yaml2obj %s > %t.o
# RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s
+# CHECK: Format: ELF64-amdgpu-hsacobj
+# CHECK: Arch: amdgcn
# CHECK: Machine: EM_AMDGPU (0xE0)
# CHECK: Sections [
# CHECK: Section {
@@ -12,12 +14,13 @@
# CHECK: SHF_AMDGPU_HSA_READONLY (0x200000)
# CHECK: }
----
+--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_AMDGPU
+ OSABI: ELFOSABI_AMDGPU_HSA
Sections:
- Name: .shf_amdgpu
diff --git a/test/Object/AMDGPU/elf32-unknown.yaml b/test/Object/AMDGPU/elf32-unknown.yaml
new file mode 100644
index 0000000000000..c4305950607e5
--- /dev/null
+++ b/test/Object/AMDGPU/elf32-unknown.yaml
@@ -0,0 +1,11 @@
+# RUN: yaml2obj %s > %t.o
+# RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s
+
+# CHECK: Format: ELF32-amdgpu
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_AMDGPU
diff --git a/test/Object/AMDGPU/elf64-relocs.yaml b/test/Object/AMDGPU/elf64-relocs.yaml
new file mode 100644
index 0000000000000..896fcdbefa091
--- /dev/null
+++ b/test/Object/AMDGPU/elf64-relocs.yaml
@@ -0,0 +1,66 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-readobj -r %t | FileCheck %s
+
+# CHECK: Relocations [
+# CHECK: Section (2) .rela.text {
+# CHECK: 0x0 R_AMDGPU_NONE main 0x0
+# CHECK: 0x8 R_AMDGPU_ABS32_LO - 0x0
+# CHECK: 0x10 R_AMDGPU_ABS32_HI - 0x0
+# CHECK: 0x18 R_AMDGPU_ABS64 - 0x0
+# CHECK: 0x20 R_AMDGPU_REL32 - 0x0
+# CHECK: 0x28 R_AMDGPU_REL64 - 0x0
+# CHECK: 0x30 R_AMDGPU_ABS32 - 0x0
+# CHECK: }
+# CHECK: ]
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_AMDGPU
+Sections:
+ - Type: SHT_PROGBITS
+ Name: .text
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x08
+ Content: 0000000000000000
+ - Type: SHT_RELA
+ Name: .rela.text
+ Link: .symtab
+ Info: .text
+ AddressAlign: 0x08
+ Relocations:
+ - Offset: 0x0
+ Symbol: main
+ Type: R_AMDGPU_NONE
+ - Offset: 0x8
+ Symbol: a
+ Type: R_AMDGPU_ABS32_LO
+ - Offset: 0x10
+ Symbol: b
+ Type: R_AMDGPU_ABS32_HI
+ - Offset: 0x18
+ Symbol: c
+ Type: R_AMDGPU_ABS64
+ - Offset: 0x20
+ Symbol: d
+ Type: R_AMDGPU_REL32
+ - Offset: 0x28
+ Symbol: e
+ Type: R_AMDGPU_REL64
+ - Offset: 0x30
+ Symbol: f
+ Type: R_AMDGPU_ABS32
+
+Symbols:
+ Local:
+ - Name: .text
+ Type: STT_SECTION
+ Section: .text
+
+ Global:
+ - Name: main
+ Type: STT_FUNC
+ Section: .text
+ Size: 0x08
diff --git a/test/Object/AMDGPU/elf64-unknown.yaml b/test/Object/AMDGPU/elf64-unknown.yaml
new file mode 100644
index 0000000000000..600eb7442d5aa
--- /dev/null
+++ b/test/Object/AMDGPU/elf64-unknown.yaml
@@ -0,0 +1,11 @@
+# RUN: yaml2obj %s > %t.o
+# RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s
+
+# CHECK: Format: ELF64-amdgpu
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_AMDGPU
diff --git a/test/Object/AMDGPU/lit.local.cfg b/test/Object/AMDGPU/lit.local.cfg
new file mode 100644
index 0000000000000..2a665f06be72e
--- /dev/null
+++ b/test/Object/AMDGPU/lit.local.cfg
@@ -0,0 +1,2 @@
+if not 'AMDGPU' in config.root.targets:
+ config.unsupported = True
diff --git a/test/Object/AMDGPU/objdump.s b/test/Object/AMDGPU/objdump.s
new file mode 100644
index 0000000000000..ca02a7ac20592
--- /dev/null
+++ b/test/Object/AMDGPU/objdump.s
@@ -0,0 +1,75 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=tonga %s -filetype=obj | llvm-objdump -disassemble -arch-name=amdgcn -mcpu=tonga - | FileCheck %s
+
+ .text
+
+ .amdgpu_hsa_kernel hello_world
+hello_world:
+ .amd_kernel_code_t
+ .end_amd_kernel_code_t
+
+ s_mov_b32 m0, 0x10000
+ s_load_dwordx2 s[0:1], s[4:5], 0x8
+ s_waitcnt lgkmcnt(0)
+ s_add_u32 s0, s7, s0
+ v_add_i32_e32 v1, vcc, s0, v1
+ s_movk_i32 s0, 0x483
+ v_cmp_ge_i32_e32 vcc, s0, v0
+ s_and_saveexec_b64 s[0:1], vcc
+ v_lshlrev_b32_e32 v4, 2, v0
+ s_cbranch_execz 21
+ s_mov_b64 s[2:3], exec
+ s_mov_b64 s[10:11], exec
+ v_mov_b32_e32 v3, v0
+ s_endpgm
+
+ .amdgpu_hsa_kernel hello_world2
+hello_world2:
+ .amd_kernel_code_t
+ .end_amd_kernel_code_t
+
+ s_and_saveexec_b64 s[0:1], vcc
+ s_cbranch_execz 85
+ s_load_dwordx4 s[8:11], s[4:5], 0x40
+ v_ashrrev_i32_e32 v77, 31, v76
+ v_lshlrev_b64 v[10:11], 2, v[76:77]
+ s_waitcnt lgkmcnt(0)
+ v_add_i32_e32 v10, vcc, s8, v10
+ v_mov_b32_e32 v6, s9
+ v_addc_u32_e32 v11, vcc, v6, v11, vcc
+ flat_load_dword v0, v[10:11]
+ v_lshlrev_b32_e32 v6, 5, v8
+ v_lshlrev_b32_e32 v7, 2, v7
+ s_endpgm
+
+// CHECK: file format ELF64-amdgpu-hsacobj
+// CHECK: Disassembly of section .text:
+// CHECK: hello_world:
+// CHECK: s_mov_b32 m0, 0x10000 // 000000000100: BEFC00FF 00010000
+// CHECK: s_load_dwordx2 s[0:1], s[4:5], 0x8 // 000000000108: C0060002 00000008
+// CHECK: s_waitcnt lgkmcnt(0) // 000000000110: BF8C007F
+// CHECK: s_add_u32 s0, s7, s0 // 000000000114: 80000007
+// CHECK: v_add_i32_e32 v1, vcc, s0, v1 // 000000000118: 32020200
+// CHECK: s_movk_i32 s0, 0x483 // 00000000011C: B0000483
+// CHECK: v_cmp_ge_i32_e32 vcc, s0, v0 // 000000000120: 7D8C0000
+// CHECK: s_and_saveexec_b64 s[0:1], vcc // 000000000124: BE80206A
+// CHECK: v_lshlrev_b32_e32 v4, 2, v0 // 000000000128: 24080082
+// CHECK: s_cbranch_execz 21 // 00000000012C: BF880015
+// CHECK: s_mov_b64 s[2:3], exec // 000000000130: BE82017E
+// CHECK: s_mov_b64 s[10:11], exec // 000000000134: BE8A017E
+// CHECK: v_mov_b32_e32 v3, v0 // 000000000138: 7E060300
+// CHECK: s_endpgm // 00000000013C: BF810000
+
+// CHECK: hello_world2:
+// CHECK: s_and_saveexec_b64 s[0:1], vcc // 000000000240: BE80206A
+// CHECK: s_cbranch_execz 85 // 000000000244: BF880055
+// CHECK: s_load_dwordx4 s[8:11], s[4:5], 0x40 // 000000000248: C00A0202 00000040
+// CHECK: v_ashrrev_i32_e32 v77, 31, v76 // 000000000250: 229A989F
+// CHECK: v_lshlrev_b64 v[10:11], 2, v[76:77] // 000000000254: D28F000A 00029882
+// CHECK: s_waitcnt lgkmcnt(0) // 00000000025C: BF8C007F
+// CHECK: v_add_i32_e32 v10, vcc, s8, v10 // 000000000260: 32141408
+// CHECK: v_mov_b32_e32 v6, s9 // 000000000264: 7E0C0209
+// CHECK: v_addc_u32_e32 v11, vcc, v6, v11, vcc // 000000000268: 38161706
+// CHECK: flat_load_dword v0, v[10:11] // 00000000026C: DC500000 0000000A
+// CHECK: v_lshlrev_b32_e32 v6, 5, v8 // 000000000274: 240C1085
+// CHECK: v_lshlrev_b32_e32 v7, 2, v7 // 000000000278: 240E0E82
+// CHECK: s_endpgm // 00000000027C: BF810000
diff --git a/test/Object/Inputs/COFF/i386.yaml b/test/Object/Inputs/COFF/i386.yaml
index 7873df0a7e25d..ad1a4f100fa3a 100644
--- a/test/Object/Inputs/COFF/i386.yaml
+++ b/test/Object/Inputs/COFF/i386.yaml
@@ -1,3 +1,4 @@
+!COFF
header: !Header
Machine: IMAGE_FILE_MACHINE_I386 # (0x14c)
Characteristics: [ IMAGE_FILE_DEBUG_STRIPPED ]
diff --git a/test/Object/Inputs/COFF/long-file-symbol.yaml b/test/Object/Inputs/COFF/long-file-symbol.yaml
index 37caad7962089..4a37a433e4362 100644
--- a/test/Object/Inputs/COFF/long-file-symbol.yaml
+++ b/test/Object/Inputs/COFF/long-file-symbol.yaml
@@ -1,4 +1,4 @@
----
+--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_AMD64
Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_LINE_NUMS_STRIPPED ]
diff --git a/test/Object/Inputs/COFF/long-section-name.yaml b/test/Object/Inputs/COFF/long-section-name.yaml
index a86f9019cd5c2..120418583170f 100644
--- a/test/Object/Inputs/COFF/long-section-name.yaml
+++ b/test/Object/Inputs/COFF/long-section-name.yaml
@@ -1,4 +1,4 @@
----
+--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_LINE_NUMS_STRIPPED, IMAGE_FILE_LOCAL_SYMS_STRIPPED, IMAGE_FILE_32BIT_MACHINE ]
diff --git a/test/Object/Inputs/COFF/section-aux-symbol.yaml b/test/Object/Inputs/COFF/section-aux-symbol.yaml
index 623af5589595b..67fba68afd47c 100644
--- a/test/Object/Inputs/COFF/section-aux-symbol.yaml
+++ b/test/Object/Inputs/COFF/section-aux-symbol.yaml
@@ -1,4 +1,4 @@
----
+--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LINE_NUMS_STRIPPED, IMAGE_FILE_32BIT_MACHINE, IMAGE_FILE_DEBUG_STRIPPED ]
diff --git a/test/Object/Inputs/COFF/weak-external.yaml b/test/Object/Inputs/COFF/weak-external.yaml
index 064b44a4a38ff..3963bcdc557cb 100644
--- a/test/Object/Inputs/COFF/weak-external.yaml
+++ b/test/Object/Inputs/COFF/weak-external.yaml
@@ -1,4 +1,4 @@
----
+--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_LINE_NUMS_STRIPPED, IMAGE_FILE_32BIT_MACHINE ]
diff --git a/test/Object/Inputs/COFF/weak-externals.yaml b/test/Object/Inputs/COFF/weak-externals.yaml
new file mode 100644
index 0000000000000..d0ec3137c7165
--- /dev/null
+++ b/test/Object/Inputs/COFF/weak-externals.yaml
@@ -0,0 +1,26 @@
+--- !COFF
+header:
+ Machine: IMAGE_FILE_MACHINE_ARMNT
+ Characteristics: [ ]
+sections:
+ - Name: .rdata
+ Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+ Alignment: 1
+ SectionData: ''
+symbols:
+ - Name: Function
+ Value: 0
+ SectionNumber: 0
+ SimpleType: IMAGE_SYM_TYPE_NULL
+ ComplexType: IMAGE_SYM_DTYPE_NULL
+ StorageClass: IMAGE_SYM_CLASS_WEAK_EXTERNAL
+ WeakExternal:
+ TagIndex: 9
+ Characteristics: IMAGE_WEAK_EXTERN_SEARCH_LIBRARY
+ - Name: .weak.Function.default
+ Value: 0
+ SectionNumber: -1
+ SimpleType: IMAGE_SYM_TYPE_NULL
+ ComplexType: IMAGE_SYM_DTYPE_NULL
+ StorageClass: IMAGE_SYM_CLASS_EXTERNAL
+...
diff --git a/test/Object/Inputs/COFF/x86-64.yaml b/test/Object/Inputs/COFF/x86-64.yaml
index b8a863a429cde..2fd5a4d19ffd5 100644
--- a/test/Object/Inputs/COFF/x86-64.yaml
+++ b/test/Object/Inputs/COFF/x86-64.yaml
@@ -1,3 +1,4 @@
+!COFF
header: !Header
Machine: IMAGE_FILE_MACHINE_AMD64 # (0x8664)
diff --git a/test/Object/Inputs/dyn-rel.so.elf-mips b/test/Object/Inputs/dyn-rel.so.elf-mips
new file mode 100755
index 0000000000000..08fe70eae3031
--- /dev/null
+++ b/test/Object/Inputs/dyn-rel.so.elf-mips
Binary files differ
diff --git a/test/Object/Inputs/invalid-sh_entsize.elf b/test/Object/Inputs/invalid-sh_entsize.elf
index 9ea80731491c1..ed501311b29bf 100755
--- a/test/Object/Inputs/invalid-sh_entsize.elf
+++ b/test/Object/Inputs/invalid-sh_entsize.elf
Binary files differ
diff --git a/test/Object/Inputs/macho-invalid-fat b/test/Object/Inputs/macho-invalid-fat
new file mode 100644
index 0000000000000..1fa01903c531c
--- /dev/null
+++ b/test/Object/Inputs/macho-invalid-fat
Binary files differ
diff --git a/test/Object/Inputs/macho-invalid-fat.obj.elf-x86_64 b/test/Object/Inputs/macho-invalid-fat.obj.elf-x86_64
new file mode 100644
index 0000000000000..4fa5afb9087f7
--- /dev/null
+++ b/test/Object/Inputs/macho-invalid-fat.obj.elf-x86_64
Binary files differ
diff --git a/test/Object/Inputs/macho-invalid-too-small-segment-load-command.1 b/test/Object/Inputs/macho-invalid-too-small-segment-load-command.1
new file mode 100644
index 0000000000000..24e570665e7bd
--- /dev/null
+++ b/test/Object/Inputs/macho-invalid-too-small-segment-load-command.1
Binary files differ
diff --git a/test/Object/Inputs/macho-universal-archive-bad1.x86_64.i386 b/test/Object/Inputs/macho-universal-archive-bad1.x86_64.i386
new file mode 100644
index 0000000000000..30ab297b09013
--- /dev/null
+++ b/test/Object/Inputs/macho-universal-archive-bad1.x86_64.i386
Binary files differ
diff --git a/test/Object/Inputs/macho-universal-archive-bad2.x86_64.i386 b/test/Object/Inputs/macho-universal-archive-bad2.x86_64.i386
new file mode 100644
index 0000000000000..763dbbc01caf8
--- /dev/null
+++ b/test/Object/Inputs/macho-universal-archive-bad2.x86_64.i386
Binary files differ
diff --git a/test/Object/Inputs/macho-universal-bad1.x86_64.i386 b/test/Object/Inputs/macho-universal-bad1.x86_64.i386
new file mode 100644
index 0000000000000..7fe21dc324a68
--- /dev/null
+++ b/test/Object/Inputs/macho-universal-bad1.x86_64.i386
Binary files differ
diff --git a/test/Object/Inputs/macho-universal-bad2.x86_64.i386 b/test/Object/Inputs/macho-universal-bad2.x86_64.i386
new file mode 100644
index 0000000000000..ec83c38fe60b8
--- /dev/null
+++ b/test/Object/Inputs/macho-universal-bad2.x86_64.i386
Binary files differ
diff --git a/test/Object/Inputs/macho-universal64-archive.x86_64.i386 b/test/Object/Inputs/macho-universal64-archive.x86_64.i386
new file mode 100644
index 0000000000000..1597357910c0f
--- /dev/null
+++ b/test/Object/Inputs/macho-universal64-archive.x86_64.i386
Binary files differ
diff --git a/test/Object/Inputs/macho-universal64.x86_64.i386 b/test/Object/Inputs/macho-universal64.x86_64.i386
new file mode 100755
index 0000000000000..add12e44a354d
--- /dev/null
+++ b/test/Object/Inputs/macho-universal64.x86_64.i386
Binary files differ
diff --git a/test/Object/Inputs/macho-valid-0-nsyms b/test/Object/Inputs/macho-valid-0-nsyms
new file mode 100644
index 0000000000000..1a170ff8161ef
--- /dev/null
+++ b/test/Object/Inputs/macho-valid-0-nsyms
Binary files differ
diff --git a/test/Object/Inputs/macho64-invalid-incomplete-load-command.1 b/test/Object/Inputs/macho64-invalid-incomplete-load-command.1
new file mode 100644
index 0000000000000..f7b0789d4d0e3
--- /dev/null
+++ b/test/Object/Inputs/macho64-invalid-incomplete-load-command.1
Binary files differ
diff --git a/test/Object/Inputs/macho64-invalid-too-small-load-command.1 b/test/Object/Inputs/macho64-invalid-too-small-load-command.1
new file mode 100644
index 0000000000000..cb8886ed3f7e1
--- /dev/null
+++ b/test/Object/Inputs/macho64-invalid-too-small-load-command.1
Binary files differ
diff --git a/test/Object/Lanai/lit.local.cfg b/test/Object/Lanai/lit.local.cfg
new file mode 100644
index 0000000000000..f1b8b4f4e21f9
--- /dev/null
+++ b/test/Object/Lanai/lit.local.cfg
@@ -0,0 +1,2 @@
+if not 'Lanai' in config.root.targets:
+ config.unsupported = True
diff --git a/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml b/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml
new file mode 100644
index 0000000000000..df81a5b8bde04
--- /dev/null
+++ b/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml
@@ -0,0 +1,67 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-readobj -r %t | FileCheck %s
+
+# CHECK: Relocations [
+# CHECK-NEXT: Section (2) .rel.text {
+# CHECK-NEXT: 0x0 R_LANAI_32 main 0x0
+# CHECK-NEXT: 0x4 R_LANAI_NONE - 0x0
+# CHECK-NEXT: 0x8 R_LANAI_21 - 0x0
+# CHECK-NEXT: 0xC R_LANAI_21_F - 0x0
+# CHECK-NEXT: 0x10 R_LANAI_25 - 0x0
+# CHECK-NEXT: 0x14 R_LANAI_HI16 - 0x0
+# CHECK-NEXT: 0x18 R_LANAI_LO16 - 0x0
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
+
+!ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_LANAI
+Sections:
+ - Type: SHT_PROGBITS
+ Name: .text
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x04
+ Content: 0000000000000000
+ - Type: SHT_REL
+ Name: .rel.text
+ Link: .symtab
+ Info: .text
+ AddressAlign: 0x04
+ Relocations:
+ - Offset: 0x0
+ Symbol: main
+ Type: R_LANAI_32
+ - Offset: 0x4
+ Symbol: a
+ Type: R_LANAI_NONE
+ - Offset: 0x8
+ Symbol: b
+ Type: R_LANAI_21
+ - Offset: 0xC
+ Symbol: c
+ Type: R_LANAI_21_F
+ - Offset: 0x10
+ Symbol: d
+ Type: R_LANAI_25
+ - Offset: 0x14
+ Symbol: e
+ Type: R_LANAI_HI16
+ - Offset: 0x18
+ Symbol: f
+ Type: R_LANAI_LO16
+
+
+Symbols:
+ Local:
+ - Name: .text
+ Type: STT_SECTION
+ Section: .text
+
+ Global:
+ - Name: main
+ Type: STT_FUNC
+ Section: .text
+ Size: 0x08
diff --git a/test/Object/Mips/abi-flags.yaml b/test/Object/Mips/abi-flags.yaml
index 8a11fc4124c3b..0d9fb369423af 100644
--- a/test/Object/Mips/abi-flags.yaml
+++ b/test/Object/Mips/abi-flags.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s > %t
+# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -mips-abi-flags %t | FileCheck -check-prefix=OBJ %s
# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s
@@ -34,6 +34,7 @@
# YAML-NEXT: CPR1Size: REG_64
# YAML-NEXT: Flags1: [ ODDSPREG ]
+!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
diff --git a/test/Object/Mips/elf-abi.yaml b/test/Object/Mips/elf-abi.yaml
index 5f11b14da5966..3a7b05e01cd3c 100644
--- a/test/Object/Mips/elf-abi.yaml
+++ b/test/Object/Mips/elf-abi.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf -docnum=1 %s > %t.o32
+# RUN: yaml2obj -docnum=1 %s > %t.o32
# RUN: llvm-readobj -file-headers %t.o32 | FileCheck -check-prefix=O32OBJ %s
# RUN: obj2yaml %t.o32 | FileCheck -check-prefix=O32YAML %s
@@ -10,7 +10,7 @@
# O32YAML: Flags: [ EF_MIPS_PIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ]
-# RUN: yaml2obj -format=elf -docnum=2 %s > %t.o64
+# RUN: yaml2obj -docnum=2 %s > %t.o64
# RUN: llvm-readobj -file-headers %t.o64 | FileCheck -check-prefix=O64OBJ %s
# RUN: obj2yaml %t.o64 | FileCheck -check-prefix=O64YAML %s
@@ -22,7 +22,7 @@
# O64YAML: Flags: [ EF_MIPS_PIC, EF_MIPS_ABI_O64, EF_MIPS_ARCH_64 ]
-# RUN: yaml2obj -format=elf -docnum=3 %s > %t.eabi32
+# RUN: yaml2obj -docnum=3 %s > %t.eabi32
# RUN: llvm-readobj -file-headers %t.eabi32 | FileCheck -check-prefix=E32OBJ %s
# RUN: obj2yaml %t.eabi32 | FileCheck -check-prefix=E32YAML %s
@@ -34,7 +34,7 @@
# E32YAML: Flags: [ EF_MIPS_PIC, EF_MIPS_ABI_EABI32, EF_MIPS_ARCH_32 ]
-# RUN: yaml2obj -format=elf -docnum=4 %s > %t.eabi64
+# RUN: yaml2obj -docnum=4 %s > %t.eabi64
# RUN: llvm-readobj -file-headers %t.eabi64 | FileCheck -check-prefix=E64OBJ %s
# RUN: obj2yaml %t.eabi64 | FileCheck -check-prefix=E64YAML %s
@@ -47,7 +47,7 @@
# E64YAML: Flags: [ EF_MIPS_PIC, EF_MIPS_ABI_EABI64, EF_MIPS_ARCH_64 ]
# o32
----
+--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
@@ -69,7 +69,7 @@ Symbols:
Size: 4
# o64
----
+--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
@@ -91,7 +91,7 @@ Symbols:
Size: 4
# eabio32
----
+--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
@@ -113,7 +113,7 @@ Symbols:
Size: 4
# eabi64
----
+--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
diff --git a/test/Object/Mips/elf-flags.yaml b/test/Object/Mips/elf-flags.yaml
index f79be9d4e078d..dceabc05c8b1d 100644
--- a/test/Object/Mips/elf-flags.yaml
+++ b/test/Object/Mips/elf-flags.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s > %t
+# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -file-headers %t | FileCheck -check-prefix=OBJ %s
# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s
@@ -25,7 +25,7 @@
# YAML-NEXT: Machine: EM_MIPS
# YAML-NEXT: Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE, EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX, EF_MIPS_ABI_O32, EF_MIPS_MACH_OCTEON, EF_MIPS_ARCH_32R6 ]
----
+--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
diff --git a/test/Object/Mips/elf-mips64-rel.yaml b/test/Object/Mips/elf-mips64-rel.yaml
index 7c41b78e6adc9..3e56555347539 100644
--- a/test/Object/Mips/elf-mips64-rel.yaml
+++ b/test/Object/Mips/elf-mips64-rel.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s > %t
+# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -r %t | FileCheck -check-prefix=OBJ %s
# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s
@@ -41,7 +41,7 @@
# YAML-NEXT: Type2: R_MIPS_LO16
# YAML-NEXT: SpecSym: RSS_GP0
----
+--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
diff --git a/test/Object/Mips/feature.test b/test/Object/Mips/feature.test
index 340301450a50d..eea33b9325ba1 100644
--- a/test/Object/Mips/feature.test
+++ b/test/Object/Mips/feature.test
@@ -1,5 +1,4 @@
-RUN: llvm-objdump -disassemble -triple mips64el -mattr +mips64r2 %p/../Inputs/dext-test.elf-mips64r2 \
-RUN: | FileCheck %s
+RUN: llvm-objdump -disassemble %p/../Inputs/dext-test.elf-mips64r2 | FileCheck %s
CHECK: Disassembly of section .text:
CHECK: dext:
diff --git a/test/Object/Mips/objdump-micro-mips.test b/test/Object/Mips/objdump-micro-mips.test
index 0f28dc1a5f1c6..6ce1cdc1c19b6 100644
--- a/test/Object/Mips/objdump-micro-mips.test
+++ b/test/Object/Mips/objdump-micro-mips.test
@@ -1,5 +1,4 @@
-RUN: llvm-objdump -d -mattr=micromips %p/../Inputs/micro-mips.elf-mipsel \
-RUN: | FileCheck %s
+RUN: llvm-objdump -d %p/../Inputs/micro-mips.elf-mipsel | FileCheck %s
CHECK: foo:
CHECK-NEXT: 330: bd 33 f8 ff addiu $sp, $sp, -8
diff --git a/test/Object/X86/nm-bitcodeweak.test b/test/Object/X86/nm-bitcodeweak.test
new file mode 100644
index 0000000000000..3333068bb36df
--- /dev/null
+++ b/test/Object/X86/nm-bitcodeweak.test
@@ -0,0 +1,10 @@
+; RUN: llvm-as %s -o=%t1
+; RUN: llvm-nm %t1 | FileCheck %s
+
+; CHECK: W __libc_blah
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-freebsd11.0"
+
+module asm ".weak __libc_blah"
+module asm ".equ __libc_blah, blah"
diff --git a/test/Object/X86/nm-ir.ll b/test/Object/X86/nm-ir.ll
index d517b09d3e92c..1742a8f938e27 100644
--- a/test/Object/X86/nm-ir.ll
+++ b/test/Object/X86/nm-ir.ll
@@ -6,6 +6,7 @@
; CHECK-NEXT: t f2
; CHECK-NEXT: W f3
; CHECK-NEXT: U f4
+; CHECK-NEXT: w f5
; CHECK-NEXT: D g1
; CHECK-NEXT: d g2
; CHECK-NEXT: C g3
@@ -31,6 +32,7 @@ module asm ".long undef_asm_sym"
@a2 = internal alias i32, i32* @g1
define void @f1() {
+ call void @f5()
ret void
}
@@ -43,3 +45,5 @@ define linkonce_odr void @f3() {
}
declare void @f4()
+
+declare extern_weak void @f5()
diff --git a/test/Object/X86/yaml2obj-elf-x86-rel.yaml b/test/Object/X86/yaml2obj-elf-x86-rel.yaml
index 5ca6614d23806..0cb26fca995b0 100644
--- a/test/Object/X86/yaml2obj-elf-x86-rel.yaml
+++ b/test/Object/X86/yaml2obj-elf-x86-rel.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s > %t
+# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -r %t | FileCheck %s
# CHECK: Relocations [
@@ -7,6 +7,7 @@
# CHECK-NEXT: }
# CHECK-NEXT: ]
+!ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
diff --git a/test/Object/archive-format.test b/test/Object/archive-format.test
index 651a9b9ef1571..70458d51be115 100644
--- a/test/Object/archive-format.test
+++ b/test/Object/archive-format.test
@@ -62,3 +62,6 @@ THIN-PATH-NEXT: /0 0 0 0 644 4 `
THIN-PATH-NEXT: /20 0 0 0 644 4 `
THIN-PATH-NEXT: /41 0 0 0 644 4 `
THIN-PATH-NEXT: /65 0 0 0 644 4 `
+
+RUN: not llvm-ar --format=bsd rcT bad.a 0123456789abcde 0123456789abcdef 2>&1 | FileCheck --check-prefix=BSD-THIN %s
+BSD-THIN: Only the gnu format has a thin mode.
diff --git a/test/Object/archive-symtab.test b/test/Object/archive-symtab.test
index 6bad783a8c82c..0fcf9adf916c4 100644
--- a/test/Object/archive-symtab.test
+++ b/test/Object/archive-symtab.test
@@ -99,6 +99,12 @@ MACHO-NEXT: 0000000000000000 t _bar
MACHO-NEXT: 0000000000000001 T _foo
MACHO-NEXT: 0000000000000002 T _main
+RUN: llvm-nm -M %p/Inputs/macho-toc64-archive-x86_64.a | FileCheck --check-prefix=MACHO-TOC64 %s
+
+MACHO-TOC64: Archive map
+MACHO-TOC64-NEXT: _test in test.o
+MACHO-TOC64-NEXT: _test in xtest.o
+
RUN: rm -f %t.a
RUN: llvm-ar --format=gnu rcsU %t.a %p/Inputs/coff-short-import-code %p/Inputs/coff-short-import-data
RUN: llvm-nm -M %t.a | FileCheck --check-prefix=COFF-SHORT-IMPORT %s
diff --git a/test/Object/archive-thin-read.test b/test/Object/archive-thin-read.test
new file mode 100644
index 0000000000000..830696056d640
--- /dev/null
+++ b/test/Object/archive-thin-read.test
@@ -0,0 +1,6 @@
+RUN: echo hello > %t.file
+RUN: rm -f %t.a
+RUN: llvm-ar --format=gnu rcsT %t.a %t.file
+RUN: llvm-ar p %t.a | FileCheck %s
+
+CHECK: hello
diff --git a/test/Object/coff-weak-externals.test b/test/Object/coff-weak-externals.test
new file mode 100644
index 0000000000000..62005ad46b9bb
--- /dev/null
+++ b/test/Object/coff-weak-externals.test
@@ -0,0 +1,5 @@
+RUN: yaml2obj %p/Inputs/COFF/weak-externals.yaml | llvm-objdump -t - | FileCheck %s
+
+CHECK: [ 0](sec 0)(fl 0x00)(ty 0)(scl 69) (nx 1) 0x00000000 Function
+CHECK: AUX indx 9 srch 2
+
diff --git a/test/Object/corrupt.test b/test/Object/corrupt.test
index 0d9aad378f880..3ce7dc7f5e99f 100644
--- a/test/Object/corrupt.test
+++ b/test/Object/corrupt.test
@@ -49,13 +49,13 @@ RUN: not llvm-readobj -dyn-relocations \
RUN: %p/Inputs/corrupt-invalid-relocation-size.elf.x86-64 2>&1 | \
RUN: FileCheck --check-prefix=RELOC %s
-RELOC: Invalid relocation entry size
+RELOC: Invalid entity size
RUN: not llvm-readobj -dyn-relocations \
RUN: %p/Inputs/corrupt-invalid-dynamic-table-size.elf.x86-64 2>&1 | \
RUN: FileCheck --check-prefix=DYN-TABLE-SIZE %s
-DYN-TABLE-SIZE: Invalid dynamic table size
+DYN-TABLE-SIZE: Invalid entity size
RUN: not llvm-readobj -dyn-relocations \
diff --git a/test/Object/dyn-rel-relocation.test b/test/Object/dyn-rel-relocation.test
new file mode 100644
index 0000000000000..4b528a7ef917c
--- /dev/null
+++ b/test/Object/dyn-rel-relocation.test
@@ -0,0 +1,71 @@
+// Check that 'llvm-readobj -dyn-relocations' shows dynamic relocations
+// if they have REL record format.
+
+// dyn-rel.so.elf-mips
+// % cat test.s
+// .globl __start
+// __start:
+// nop
+//
+// .data
+// .type v1,@object
+// .size v1,4
+// v1:
+// .word 0
+//
+// .globl v2
+// .type v2,@object
+// .size v2,8
+// v2:
+// .word v2+4 # R_MIPS_32 target v2 addend 4
+// .word v1 # R_MIPS_32 target v1 addend 0
+//
+// % llvm-mc -filetype=obj -triple=mips-unknown-linux -o test.o test.s
+// % ld -m elf32btsmip -shared -o dyn-rel.so.elf-mips test.o
+
+RUN: llvm-readobj -relocations -dyn-relocations -expand-relocs \
+RUN: %p/Inputs/dyn-rel.so.elf-mips | FileCheck %s
+
+// CHECK: Relocations [
+// CHECK-NEXT: Section (6) .rel.dyn {
+// CHECK-NEXT: Relocation {
+// CHECK-NEXT: Offset: 0x0
+// CHECK-NEXT: Type: R_MIPS_NONE (0)
+// CHECK-NEXT: Symbol: - (0)
+// CHECK-NEXT: Addend: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: Relocation {
+// CHECK-NEXT: Offset: 0x102F8
+// CHECK-NEXT: Type: R_MIPS_REL32 (3)
+// CHECK-NEXT: Symbol: - (0)
+// CHECK-NEXT: Addend: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: Relocation {
+// CHECK-NEXT: Offset: 0x102F4
+// CHECK-NEXT: Type: R_MIPS_REL32 (3)
+// CHECK-NEXT: Symbol: v2 (9)
+// CHECK-NEXT: Addend: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+
+// CHECK: Dynamic Relocations {
+// CHECK-NEXT: Relocation {
+// CHECK-NEXT: Offset: 0x0
+// CHECK-NEXT: Type: R_MIPS_NONE (0)
+// CHECK-NEXT: Symbol: -
+// CHECK-NEXT: Addend: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: Relocation {
+// CHECK-NEXT: Offset: 0x102F8
+// CHECK-NEXT: Type: R_MIPS_REL32 (3)
+// CHECK-NEXT: Symbol: -
+// CHECK-NEXT: Addend: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: Relocation {
+// CHECK-NEXT: Offset: 0x102F4
+// CHECK-NEXT: Type: R_MIPS_REL32 (3)
+// CHECK-NEXT: Symbol: v2
+// CHECK-NEXT: Addend: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: }
diff --git a/test/Object/dynamic-reloc.test b/test/Object/dynamic-reloc.test
new file mode 100644
index 0000000000000..6a9a5cee44d5b
--- /dev/null
+++ b/test/Object/dynamic-reloc.test
@@ -0,0 +1,12 @@
+RUN: llvm-readobj -r %p/Inputs/dynamic-reloc.so | FileCheck --check-prefix=READOBJ %s
+
+READOBJ: Relocations [
+READOBJ-NEXT: Section (4) .rela.dyn {
+READOBJ-NEXT: 0x1328 R_X86_64_RELATIVE - 0x1320
+READOBJ-NEXT: }
+READOBJ-NEXT: ]
+
+RUN: llvm-objdump -r %p/Inputs/dynamic-reloc.so | FileCheck --check-prefix=OBJDUMP %s
+
+OBJDUMP: file format ELF64-x86-64
+OBJDUMP-NOT: RELOCATION
diff --git a/test/Object/elf-unknown-type.test b/test/Object/elf-unknown-type.test
index 9993c096376cd..1ef4f58085de9 100644
--- a/test/Object/elf-unknown-type.test
+++ b/test/Object/elf-unknown-type.test
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -file-headers - | FileCheck %s
!ELF
FileHeader: !FileHeader
diff --git a/test/Object/invalid.test b/test/Object/invalid.test
index cc5cd68304c6a..a32c621cca61c 100644
--- a/test/Object/invalid.test
+++ b/test/Object/invalid.test
@@ -35,9 +35,11 @@ SECTION-NEXT: AddressAlignment:
SECTION-NEXT: EntrySize: 32
RUN: not llvm-readobj -t %p/Inputs/invalid-sh_entsize.elf 2>&1 | FileCheck --check-prefix=INVALID-SYM-SIZE %s
-RUN: not llvm-readobj --dyn-symbols %p/Inputs/invalid-sh_entsize.elf 2>&1 | FileCheck --check-prefix=INVALID-SYM-SIZE %s
INVALID-SYM-SIZE: Invalid symbol size
+RUN: not llvm-readobj --dyn-symbols %p/Inputs/invalid-sh_entsize.elf 2>&1 | FileCheck --check-prefix=INVALID-DYNSYM-SIZE %s
+INVALID-DYNSYM-SIZE: Invalid entity size
+
RUN: not llvm-readobj -t %p/Inputs/invalid-section-index.elf 2>&1 | FileCheck --check-prefix=INVALID-SECTION-INDEX %s
INVALID-SECTION-INDEX: Invalid section index
diff --git a/test/Object/macho-invalid.test b/test/Object/macho-invalid.test
index f4aa1e0c2984b..9c4e37c65a6f0 100644
--- a/test/Object/macho-invalid.test
+++ b/test/Object/macho-invalid.test
@@ -1,42 +1,105 @@
-// No crash, might not be totally invalid
-RUN: llvm-objdump -private-headers %p/Inputs/macho-invalid-zero-ncmds
+// An odd Mach-O file, with just a mach header with all but the magic field
+// and filetype zeros. The cputype and cpusubtype fields being zero are invalid,
+// but that does not mater for the most part to display some of the contents.
+RUN: llvm-objdump -private-headers %p/Inputs/macho-invalid-zero-ncmds -macho \
+RUN: | FileCheck -check-prefix ZERO-NCMDS %s
+ZERO-NCMDS: MH_MAGIC_64 0 0 0x00 OBJECT 0 0 0x00000000
-RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-incomplete-load-command 2>&1 \
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho64-invalid-incomplete-load-command 2>&1 \
RUN: | FileCheck -check-prefix INCOMPLETE-LOADC %s
-INCOMPLETE-LOADC: Invalid data was encountered while parsing the file.
+INCOMPLETE-LOADC: truncated or malformed object (load command 0 extends past the end all load commands in the file)
-RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-load-command 2>&1 \
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho64-invalid-incomplete-load-command.1 2>&1 \
+RUN: | FileCheck -check-prefix INCOMPLETE-LOADC-1 %s
+INCOMPLETE-LOADC-1: truncated or malformed object (load command 1 extends past the end all load commands in the file)
+
+RUN: not llvm-objdump -macho -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: not llvm-objdump -macho -private-headers %p/Inputs/macho64-invalid-too-small-load-command 2>&1 \
RUN: | FileCheck -check-prefix SMALL-LOADC-SIZE %s
-SMALL-LOADC-SIZE: Mach-O load command with size < 8 bytes
+SMALL-LOADC-SIZE: truncated or malformed object (load commands extend past the end of the file)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho64-invalid-too-small-load-command.1 2>&1 \
+RUN: | FileCheck -check-prefix SMALL-LOADC-SIZE-1 %s
+SMALL-LOADC-SIZE-1: truncated or malformed object (load command 1 with size less than 8 bytes)
RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-segment-load-command 2>&1 \
+RUN: | FileCheck -check-prefix MULTIPLE-NOT-4 %s
+MULTIPLE-NOT-4: truncated or malformed object (load command 0 cmdsize not a multiple of 4)
+
+RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-segment-load-command.1 2>&1 \
RUN: | FileCheck -check-prefix SMALL-SEGLOADC-SIZE %s
+SMALL-SEGLOADC-SIZE: truncated or malformed object (load command 0 LC_SEGMENT cmdsize too small)
+
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
-SMALL-SEGLOADC-SIZE: Mach-O segment load command size is too small
+RUN: | FileCheck -check-prefix MULTIPLE-NOT-8 %s
+MULTIPLE-NOT-8: truncated or malformed object (load command 0 cmdsize not a multiple of 8)
RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-no-size-for-sections 2>&1 \
RUN: | FileCheck -check-prefix TOO-MANY-SECTS %s
+TOO-MANY-SECTS: truncated or malformed object (load command 0 inconsistent cmdsize in LC_SEGMENT for the number of sections)
RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-no-size-for-sections 2>&1 \
-RUN: | FileCheck -check-prefix TOO-MANY-SECTS %s
-TOO-MANY-SECTS: Mach-O segment load command contains too many sections
+RUN: | FileCheck -check-prefix TOO-MANY-SECTS-64 %s
+TOO-MANY-SECTS-64: truncated or malformed object (load command 0 inconsistent cmdsize in LC_SEGMENT_64 for the number of sections)
-RUN: not llvm-objdump -t %p/Inputs/macho-invalid-bad-symbol-index 2>&1 \
+RUN: not llvm-objdump -macho -t %p/Inputs/macho-invalid-bad-symbol-index 2>&1 \
RUN: | FileCheck -check-prefix BAD-SYMBOL %s
-BAD-SYMBOL: Requested symbol index is out of range
+BAD-SYMBOL: truncated or malformed object (ilocalsym plus nlocalsym in LC_DYSYMTAB load command extends past the end of the symbol table)
+RUN: llvm-objdump -macho -t %p/Inputs/macho-valid-0-nsyms 2>&1 \
+RUN: | FileCheck -check-prefix ZERO-NSYMS %s
+ZERO-NSYMS: SYMBOL TABLE
RUN: not llvm-objdump -t %p/Inputs/macho-invalid-symbol-name-past-eof 2>&1 \
RUN: | FileCheck -check-prefix NAME-PAST-EOF %s
-NAME-PAST-EOF: Symbol name entry points before beginning or past end of file
+NAME-PAST-EOF: truncated or malformed object (bad string index: 4261412866 for symbol at index 0)
+RUN: llvm-nm -pa %p/Inputs/macho-invalid-symbol-name-past-eof 2>&1 \
+RUN: | FileCheck -check-prefix NAME-PAST-EOF-nm-pa %s
+NAME-PAST-EOF-nm-pa: 0000000000000000 - 00 0000 SO bad string index
+RUN: llvm-nm -pax %p/Inputs/macho-invalid-symbol-name-past-eof 2>&1 \
+RUN: | FileCheck -check-prefix NAME-PAST-EOF-nm-pax %s
+NAME-PAST-EOF-nm-pax: 0000000000000000 64 00 0000 fe000002 bad string index
+
+RUN: not llvm-objdump -t %p/Inputs/macho-bad-archive1.a 2>&1 \
+RUN: | FileCheck -check-prefix NAME-PAST-EOF-ARCHIVE %s
+NAME-PAST-EOF-ARCHIVE: macho-bad-archive1.a(macho-invalid-symbol-name-past-eof) truncated or malformed object (bad string index: 4261412866 for symbol at index 0)
-RUN: not llvm-nm %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \
+RUN: not llvm-objdump -macho -arch all -t %p/Inputs/macho-universal-bad1.x86_64.i386 2>&1 \
+RUN: | FileCheck -check-prefix NAME-PAST-EOF-FAT %s
+NAME-PAST-EOF-FAT: macho-universal-bad1.x86_64.i386 (for architecture x86_64) truncated or malformed object (bad string index: 4261412866 for symbol at index 0)
+RUN: not llvm-objdump -macho -arch all -t %p/Inputs/macho-universal-archive-bad1.x86_64.i386 2>&1 \
+RUN: | FileCheck -check-prefix NAME-PAST-EOF-FAT-ARCHIVE %s
+NAME-PAST-EOF-FAT-ARCHIVE: macho-universal-archive-bad1.x86_64.i386(macho-invalid-symbol-name-past-eof) (for architecture x86_64) truncated or malformed object (bad string index: 4261412866 for symbol at index 0)
+
+RUN: llvm-nm %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \
RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SYMBOL-SEC %s
-INVALID-SECTION-IDX-SYMBOL-SEC: getSymbolSection: Invalid section index
+INVALID-SECTION-IDX-SYMBOL-SEC: 0000000100000000 S __mh_execute_header
+RUN: llvm-nm -m %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \
+RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SYMBOL-SEC-m %s
+INVALID-SECTION-IDX-SYMBOL-SEC-m: 0000000100000000 (?,?) [referenced dynamically] external __mh_execute_header
+RUN: llvm-nm -pax %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \
+RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SYMBOL-SEC-pax %s
+INVALID-SECTION-IDX-SYMBOL-SEC-pax: 0000000100000000 0f 42 0010 00000065 __mh_execute_header
+RUN: not llvm-objdump -t %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \
+RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SYMBOL-SEC-objdump %s
+INVALID-SECTION-IDX-SYMBOL-SEC-objdump: truncated or malformed object (bad section index: 66 for symbol at index 8)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-header 2>&1 | FileCheck -check-prefix INVALID-HEADER %s
+INVALID-HEADER: The file was not recognized as a valid object file
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho64-invalid-incomplete-segment-load-command 2>&1 | FileCheck -check-prefix INCOMPLETE-SEGMENT-LOADC %s
+INCOMPLETE-SEGMENT-LOADC: truncated or malformed object (load commands extend past the end of the file)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-bad-archive2.a 2>&1 | FileCheck -check-prefix INCOMPLETE-SEGMENT-LOADC-ARCHIVE %s
+INCOMPLETE-SEGMENT-LOADC-ARCHIVE: macho-bad-archive2.a(macho64-invalid-incomplete-segment-load-command) truncated or malformed object (load commands extend past the end of the file)
+
+RUN: not llvm-objdump -macho -private-headers -arch all %p/Inputs/macho-universal-bad2.x86_64.i386 2>&1 | FileCheck -check-prefix INCOMPLETE-SEGMENT-LOADC-FAT %s
+INCOMPLETE-SEGMENT-LOADC-FAT: macho-universal-bad2.x86_64.i386 (for architecture x86_64) truncated or malformed object (load commands extend past the end of the file)
+
+RUN: not llvm-objdump -macho -private-headers -arch all %p/Inputs/macho-universal-archive-bad2.x86_64.i386 2>&1 | FileCheck -check-prefix INCOMPLETE-SEGMENT-LOADC-FAT-ARCHIVE %s
+INCOMPLETE-SEGMENT-LOADC-FAT-ARCHIVE: macho-universal-archive-bad2.x86_64.i386(macho64-invalid-incomplete-segment-load-command) (for architecture x86_64) truncated or malformed object (load commands extend past the end of the file)
-RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-header 2>&1 | FileCheck -check-prefix INVALID-HEADER %s
-INVALID-HEADER: Invalid data was encountered while parsing the file
+RUN: not llvm-objdump -macho -universal-headers %p/Inputs/macho-invalid-fat 2>&1 | FileCheck -check-prefix INVALID-FAT %s
+INVALID-FAT: truncated or malformed fat file (fat_arch_64 structs would extend past the end of the file)
-RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-incomplete-segment-load-command 2>&1 | FileCheck -check-prefix INCOMPLETE-SEGMENT-LOADC %s
-INCOMPLETE-SEGMENT-LOADC: Invalid data was encountered while parsing the file
+RUN: not llvm-objdump -macho -private-headers -arch all %p/Inputs/macho-invalid-fat.obj.elf-x86_64 2>&1 | FileCheck -check-prefix INVALID-FAT-ELF %s
+INVALID-FAT-ELF: Mach-O universal file: {{.*}}/macho-invalid-fat.obj.elf-x86_64 for architecture x86_64 is not a Mach-O file or an archive file
diff --git a/test/Object/nm-archive.test b/test/Object/nm-archive.test
index 8f8cdbe9f08cf..1a13c23f2450e 100644
--- a/test/Object/nm-archive.test
+++ b/test/Object/nm-archive.test
@@ -55,9 +55,10 @@ RUN: llvm-nm %p/Inputs/archive-test.a-empty
This archive has an unaligned member and a unknown format member.
GNU AR is able to parse the unaligned member and warns about the member with
-the unknown format. We should probably simply warn on both. For now just check
-that we don't produce an error.
-RUN: llvm-nm %p/Inputs/corrupt-archive.a
+the unknown format. We should probably simply warn on both. For now we just
+produce an error for the unknown format.
+RUN: not llvm-nm %p/Inputs/corrupt-archive.a 2>&1 | FileCheck %s -check-prefix CORRUPT
+CORRUPT: corrupt-archive.a(trivial-object-test2.elf-x86-64) Invalid data was encountered while parsing the file
RUN: llvm-nm %p/Inputs/thin.a | FileCheck %s -check-prefix THIN
diff --git a/test/Object/nm-universal-binary.test b/test/Object/nm-universal-binary.test
index 0cced1829c3f6..1fce0eea6452b 100644
--- a/test/Object/nm-universal-binary.test
+++ b/test/Object/nm-universal-binary.test
@@ -1,5 +1,7 @@
RUN: llvm-nm -arch all %p/Inputs/macho-universal.x86_64.i386 \
RUN: | FileCheck %s -check-prefix CHECK-OBJ
+RUN: llvm-nm -arch all %p/Inputs/macho-universal64.x86_64.i386 \
+RUN: | FileCheck %s -check-prefix CHECK-64-OBJ
RUN: llvm-nm -arch x86_64 %p/Inputs/macho-universal.x86_64.i386 \
RUN: | FileCheck %s -check-prefix CHECK-OBJ-x86_64
RUN: not llvm-nm -arch armv7m %p/Inputs/macho-universal.x86_64.i386 2>&1 \
@@ -8,6 +10,8 @@ RUN: not llvm-nm -arch foobar %p/Inputs/macho-universal.x86_64.i386 2>&1 \
RUN: | FileCheck %s -check-prefix CHECK-OBJ-foobar
RUN: llvm-nm -arch all %p/Inputs/macho-universal-archive.x86_64.i386 \
RUN: | FileCheck %s -check-prefix CHECK-AR
+RUN: llvm-nm -arch all %p/Inputs/macho-universal64-archive.x86_64.i386 \
+RUN: | FileCheck %s -check-prefix CHECK-64-AR
RUN: llvm-nm -arch i386 %p/Inputs/macho-universal-archive.x86_64.i386 \
RUN: | FileCheck %s -check-prefix CHECK-AR-i386
RUN: llvm-nm -o -arch all %p/Inputs/macho-universal-archive.x86_64.i386 \
@@ -18,6 +22,11 @@ CHECK-OBJ: 0000000100000f60 T _main
CHECK-OBJ: macho-universal.x86_64.i386 (for architecture i386):
CHECK-OBJ: 00001fa0 T _main
+CHECK-64-OBJ: macho-universal64.x86_64.i386 (for architecture x86_64):
+CHECK-64-OBJ: 0000000100000f60 T _main
+CHECK-64-OBJ: macho-universal64.x86_64.i386 (for architecture i386):
+CHECK-64-OBJ: 00001fa0 T _main
+
CHECK-OBJ-x86_64: 0000000100000000 T __mh_execute_header
CHECK-OBJ-x86_64: 0000000100000f60 T _main
CHECK-OBJ-x86_64: U dyld_stub_binder
@@ -38,6 +47,16 @@ CHECK-AR: macho-universal-archive.x86_64.i386(foo.o) (for architecture i386):
CHECK-AR: 00000008 D _bar
CHECK-AR: 00000000 T _foo
+CHECK-64-AR: macho-universal64-archive.x86_64.i386(foo.o) (for architecture i386):
+CHECK-64-AR: 00000008 D _bar
+CHECK-64-AR: 00000000 T _foo
+CHECK-64-AR: macho-universal64-archive.x86_64.i386(hello.o) (for architecture x86_64):
+CHECK-64-AR: 0000000000000068 s EH_frame0
+CHECK-64-AR: 000000000000003b s L_.str
+CHECK-64-AR: 0000000000000000 T _main
+CHECK-64-AR: 0000000000000080 S _main.eh
+CHECK-64-AR: U _printf
+
CHECK-AR-i386: macho-universal-archive.x86_64.i386(foo.o):
CHECK-AR-i386: 00000008 D _bar
CHECK-AR-i386: 00000000 T _foo
diff --git a/test/Object/no-section-table.test b/test/Object/no-section-table.test
index 77fb98a4d406d..bd60e681b71f3 100644
--- a/test/Object/no-section-table.test
+++ b/test/Object/no-section-table.test
@@ -25,7 +25,7 @@ CHECK: 0x0000000000000009 RELAENT 24 (bytes)
CHECK: 0x000000006FFFFFFE VERNEED 0x3A8
CHECK: 0x000000006FFFFFFF VERNEEDNUM 1
CHECK: 0x000000006FFFFFF0 VERSYM 0x38C
-CHECK: 0x000000006FFFFFF9 unknown 0x3
+CHECK: 0x000000006FFFFFF9 RELACOUNT 3
CHECK: 0x0000000000000000 NULL 0x0
CHECK: ]
CHECK: HashTable {
diff --git a/test/Object/obj2yaml-sectiongroup.test b/test/Object/obj2yaml-sectiongroup.test
index 66e8e3875be20..2387c75494f80 100644
--- a/test/Object/obj2yaml-sectiongroup.test
+++ b/test/Object/obj2yaml-sectiongroup.test
@@ -1,7 +1,7 @@
# 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: yaml2obj %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
diff --git a/test/Object/obj2yaml.test b/test/Object/obj2yaml.test
index 60d46a83a52e2..171488da78fbc 100644
--- a/test/Object/obj2yaml.test
+++ b/test/Object/obj2yaml.test
@@ -327,7 +327,7 @@ ELF-MIPS64EL-NEXT: Flags: [ SHF_WRITE, SHF_ALLOC ]
ELF-MIPS64EL-NEXT: AddressAlign: 0x0000000000000010
ELF-MIPS64EL-NEXT: - Name: .MIPS.options
ELF-MIPS64EL-NEXT: Type: SHT_MIPS_OPTIONS
-ELF-MIPS64EL-NEXT: Flags: [ SHF_ALLOC ]
+ELF-MIPS64EL-NEXT: Flags: [ SHF_ALLOC, SHF_MIPS_NOSTRIP ]
ELF-MIPS64EL-NEXT: AddressAlign: 0x0000000000000008
ELF-MIPS64EL-NEXT: Content: '01280000000000000000000000000000000000000000000000000000000000000000000000000000'
ELF-MIPS64EL-NEXT: - Name: .pdr
diff --git a/test/Object/relocation-executable.test b/test/Object/relocation-executable.test
index 93d4dee3089ba..bb0bb157b6a1d 100644
--- a/test/Object/relocation-executable.test
+++ b/test/Object/relocation-executable.test
@@ -34,6 +34,18 @@ RUN: %p/Inputs/hello-world.elf-x86-64 | FileCheck %s --check-prefix=DYN
// DYN-NEXT: Symbol: __gmon_start__
// DYN-NEXT: Addend: 0x0
// DYN-NEXT: }
+// DYN-NEXT: Relocation {
+// DYN-NEXT: Offset: 0x4018F8
+// DYN-NEXT: Type: R_X86_64_JUMP_SLOT (7)
+// DYN-NEXT: Symbol: __libc_start_main
+// DYN-NEXT: Addend: 0x0
+// DYN-NEXT: }
+// DYN-NEXT: Relocation {
+// DYN-NEXT: Offset: 0x401900
+// DYN-NEXT: Type: R_X86_64_JUMP_SLOT (7)
+// DYN-NEXT: Symbol: puts
+// DYN-NEXT: Addend: 0x0
+// DYN-NEXT: }
// DYN-NEXT: }
RUN: llvm-readobj -dyn-relocations -expand-relocs \
diff --git a/test/Object/yaml2obj-coff-invalid-alignment.test b/test/Object/yaml2obj-coff-invalid-alignment.test
new file mode 100644
index 0000000000000..3e760310f5714
--- /dev/null
+++ b/test/Object/yaml2obj-coff-invalid-alignment.test
@@ -0,0 +1,14 @@
+# RUN: not yaml2obj %s 2>&1 | FileCheck %s
+
+# CHECK: Section alignment is too large
+
+--- !COFF
+header:
+ Machine: IMAGE_FILE_MACHINE_AMD64
+ Characteristics: []
+sections:
+ - Name: '.text'
+ Characteristics: []
+ SectionData: 00
+ Alignment: 16384
+symbols:
diff --git a/test/Object/yaml2obj-coff-multi-doc.test b/test/Object/yaml2obj-coff-multi-doc.test
index 1cf720306bf7b..0335a72bfcf48 100644
--- a/test/Object/yaml2obj-coff-multi-doc.test
+++ b/test/Object/yaml2obj-coff-multi-doc.test
@@ -1,15 +1,15 @@
-# RUN: yaml2obj -format=coff -docnum=1 %s \
+# RUN: yaml2obj -docnum=1 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC1 %s
-# RUN: yaml2obj -format=coff -docnum=2 %s \
+# RUN: yaml2obj -docnum=2 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC2 %s
-# RUN: not yaml2obj -format=coff -docnum=3 %s 2>&1 \
+# RUN: not yaml2obj -docnum=3 %s 2>&1 \
# RUN: | FileCheck -check-prefix=DOC3 %s
# DOC1: Name: _sym1
# DOC2: Name: _sym2
# DOC3: yaml2obj: Cannot find the 3rd document
----
+--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_DEBUG_STRIPPED ]
@@ -49,7 +49,7 @@ symbols:
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
----
+--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_I386
Characteristics: [ IMAGE_FILE_DEBUG_STRIPPED ]
diff --git a/test/Object/yaml2obj-elf-alignment.yaml b/test/Object/yaml2obj-elf-alignment.yaml
index 8f2f985177f76..341966d9a5bea 100644
--- a/test/Object/yaml2obj-elf-alignment.yaml
+++ b/test/Object/yaml2obj-elf-alignment.yaml
@@ -1,6 +1,6 @@
# Check that yaml2obj takes in account section AddressAlign field.
-# RUN: yaml2obj -format=elf %s > %t
+# RUN: yaml2obj %s > %t
# RUN: llvm-readobj -s %t | FileCheck %s
# CHECK: Section {
@@ -20,7 +20,7 @@
# CHECK-NEXT: EntrySize: 0
# CHECK-NEXT: }
----
+--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
diff --git a/test/Object/yaml2obj-elf-bits-endian.test b/test/Object/yaml2obj-elf-bits-endian.test
index 4be9a4465b813..e8bd2f1d8d102 100644
--- a/test/Object/yaml2obj-elf-bits-endian.test
+++ b/test/Object/yaml2obj-elf-bits-endian.test
@@ -1,7 +1,7 @@
-RUN: yaml2obj -format=elf %p/Inputs/ELF/LE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE64
-RUN: yaml2obj -format=elf %p/Inputs/ELF/BE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE64
-RUN: yaml2obj -format=elf %p/Inputs/ELF/LE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE32
-RUN: yaml2obj -format=elf %p/Inputs/ELF/BE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE32
+RUN: yaml2obj %p/Inputs/ELF/LE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE64
+RUN: yaml2obj %p/Inputs/ELF/BE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE64
+RUN: yaml2obj %p/Inputs/ELF/LE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE32
+RUN: yaml2obj %p/Inputs/ELF/BE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE32
LE64: Class: 64-bit (0x2)
LE64-NEXT: DataEncoding: LittleEndian (0x1)
diff --git a/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml b/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml
index dddc7d97f6280..ad032e80d64f4 100644
--- a/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml
+++ b/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -file-headers - | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS32
diff --git a/test/Object/yaml2obj-elf-file-headers.yaml b/test/Object/yaml2obj-elf-file-headers.yaml
index 285170170a20c..4dfee5f9387d5 100644
--- a/test/Object/yaml2obj-elf-file-headers.yaml
+++ b/test/Object/yaml2obj-elf-file-headers.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -file-headers - | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
diff --git a/test/Object/yaml2obj-elf-multi-doc.test b/test/Object/yaml2obj-elf-multi-doc.test
index c51f803300ec6..b3c8335a36b78 100644
--- a/test/Object/yaml2obj-elf-multi-doc.test
+++ b/test/Object/yaml2obj-elf-multi-doc.test
@@ -1,8 +1,8 @@
-# RUN: yaml2obj -format=elf -docnum=1 %s \
+# RUN: yaml2obj -docnum=1 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC1 %s
-# RUN: yaml2obj -format=elf -docnum=2 %s \
+# RUN: yaml2obj -docnum=2 %s \
# RUN: | llvm-readobj -symbols - | FileCheck -check-prefix=DOC2 %s
-# RUN: not yaml2obj -format=elf -docnum=3 %s 2>&1 \
+# RUN: not yaml2obj -docnum=3 %s 2>&1 \
# RUN: | FileCheck -check-prefix=DOC3 %s
# DOC1: Name: T1 (1)
diff --git a/test/Object/yaml2obj-elf-rel-noref.yaml b/test/Object/yaml2obj-elf-rel-noref.yaml
index 4a13acd1fd382..8eb6b0dca3b69 100644
--- a/test/Object/yaml2obj-elf-rel-noref.yaml
+++ b/test/Object/yaml2obj-elf-rel-noref.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -sections -relocations - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -sections -relocations - | FileCheck %s
!ELF
FileHeader: !FielHeader
diff --git a/test/Object/yaml2obj-elf-rel.yaml b/test/Object/yaml2obj-elf-rel.yaml
index ba3640cfefad3..f98c8e262a7ad 100644
--- a/test/Object/yaml2obj-elf-rel.yaml
+++ b/test/Object/yaml2obj-elf-rel.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -sections -relocations - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -sections -relocations - | FileCheck %s
!ELF
FileHeader: !FileHeader
diff --git a/test/Object/yaml2obj-elf-section-basic.yaml b/test/Object/yaml2obj-elf-section-basic.yaml
index 69d3ae91b7179..c2dde8c26ff3f 100644
--- a/test/Object/yaml2obj-elf-section-basic.yaml
+++ b/test/Object/yaml2obj-elf-section-basic.yaml
@@ -1,5 +1,5 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -sections -section-data - | FileCheck %s
-# RUN: yaml2obj -format=elf -o %t %s
+# RUN: yaml2obj %s | llvm-readobj -sections -section-data - | FileCheck %s
+# RUN: yaml2obj -o %t %s
# RUN: llvm-readobj -sections -section-data %t | FileCheck %s
!ELF
diff --git a/test/Object/yaml2obj-elf-section-invalid-size.yaml b/test/Object/yaml2obj-elf-section-invalid-size.yaml
index d0cb370072dd2..b896c9d6afcbb 100644
--- a/test/Object/yaml2obj-elf-section-invalid-size.yaml
+++ b/test/Object/yaml2obj-elf-section-invalid-size.yaml
@@ -1,4 +1,4 @@
-# RUN: not yaml2obj -format=elf -o %t %s 2>&1 | FileCheck %s
+# RUN: not yaml2obj -o %t %s 2>&1 | FileCheck %s
!ELF
FileHeader:
diff --git a/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml b/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml
index 3c4e830c0df64..c044d711a34df 100644
--- a/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml
+++ b/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -symbols - | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml
index b17c0429bd47b..e1f5ce4e725a1 100644
--- a/test/Object/yaml2obj-elf-symbol-basic.yaml
+++ b/test/Object/yaml2obj-elf-symbol-basic.yaml
@@ -1,4 +1,4 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | FileCheck %s
+# RUN: yaml2obj %s | llvm-readobj -symbols - | FileCheck %s
!ELF
FileHeader:
Class: ELFCLASS64
diff --git a/test/Object/yaml2obj-elf-symbol-visibility.yaml b/test/Object/yaml2obj-elf-symbol-visibility.yaml
index 6c4037c831d12..82b3d48f0a3fc 100644
--- a/test/Object/yaml2obj-elf-symbol-visibility.yaml
+++ b/test/Object/yaml2obj-elf-symbol-visibility.yaml
@@ -1,6 +1,6 @@
-# RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | \
+# RUN: yaml2obj %s | llvm-readobj -symbols - | \
# RUN: FileCheck --check-prefix OBJ %s
-# RUN: yaml2obj -format=elf %s | obj2yaml - | FileCheck --check-prefix YAML %s
+# RUN: yaml2obj %s | obj2yaml - | FileCheck --check-prefix YAML %s
# OBJ: Symbol {
# OBJ: Name: default1 (36)
@@ -26,7 +26,9 @@
# OBJ-NEXT: Size: 4
# OBJ-NEXT: Binding: Global (0x1)
# OBJ-NEXT: Type: Object (0x1)
-# OBJ-NEXT: Other: 1
+# OBJ-NEXT: Other [ (0x1)
+# OBJ-NEXT: STV_INTERNAL
+# OBJ-NEXT: ]
# OBJ-NEXT: Section: .data (0x1)
# OBJ-NEXT: }
# OBJ-NEXT: Symbol {
@@ -35,7 +37,9 @@
# OBJ-NEXT: Size: 4
# OBJ-NEXT: Binding: Global (0x1)
# OBJ-NEXT: Type: Object (0x1)
-# OBJ-NEXT: Other: 2
+# OBJ-NEXT: Other [ (0x2)
+# OBJ-NEXT: STV_HIDDEN
+# OBJ-NEXT: ]
# OBJ-NEXT: Section: .data (0x1)
# OBJ-NEXT: }
# OBJ-NEXT: Symbol {
@@ -44,7 +48,11 @@
# OBJ-NEXT: Size: 4
# OBJ-NEXT: Binding: Global (0x1)
# OBJ-NEXT: Type: Object (0x1)
-# OBJ-NEXT: Other: 163
+# OBJ-NEXT: Other [ (0xA3)
+# OBJ-NEXT: STO_MIPS_MICROMIPS
+# OBJ-NEXT: STO_MIPS_PIC
+# OBJ-NEXT: STV_PROTECTED
+# OBJ-NEXT: ]
# OBJ-NEXT: Section: .data (0x1)
# OBJ-NEXT: }
@@ -79,7 +87,7 @@
# YAML-NEXT: Visibility: STV_PROTECTED
# YAML-NEXT: Other: [ STO_MIPS_PIC, STO_MIPS_MICROMIPS ]
----
+--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB