aboutsummaryrefslogtreecommitdiffstats
path: root/test/Object
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2014-04-23 16:57:46 -0700
committerStephen Hines <srhines@google.com>2014-04-24 15:53:16 -0700
commit36b56886974eae4f9c5ebc96befd3e7bfe5de338 (patch)
treee6cfb69fbbd937f450eeb83bfb83b9da3b01275a /test/Object
parent69a8640022b04415ae9fac62f8ab090601d8f889 (diff)
downloadexternal_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.zip
external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.gz
external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.bz2
Update to LLVM 3.5a.
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
Diffstat (limited to 'test/Object')
-rw-r--r--test/Object/Inputs/COFF/i386.yaml16
-rw-r--r--test/Object/Inputs/COFF/long-file-symbol.yaml14
-rw-r--r--test/Object/Inputs/COFF/x86-64.yaml16
-rw-r--r--test/Object/Inputs/absolute.elf-x86-64bin0 -> 711 bytes
-rw-r--r--test/Object/Inputs/common.coff-i386bin0 -> 520 bytes
-rw-r--r--test/Object/Inputs/relocatable-with-section-address.elf-x86-64bin0 -> 1584 bytes
-rw-r--r--test/Object/Inputs/thumb-symbols.elf.armbin0 -> 481 bytes
-rw-r--r--test/Object/Inputs/trivial-object-test.elf-mipselbin0 -> 936 bytes
-rw-r--r--test/Object/Inputs/weak.elf-x86-64bin0 -> 896 bytes
-rw-r--r--test/Object/X86/objdump-disassembly-inline-relocations.test35
-rw-r--r--test/Object/extract.ll1
-rw-r--r--test/Object/mangle-ir.ll8
-rw-r--r--test/Object/nm-archive.test2
-rw-r--r--test/Object/nm-error.test6
-rw-r--r--test/Object/nm-ir.ll34
-rw-r--r--test/Object/nm-shared-object.test22
-rw-r--r--test/Object/nm-trivial-object.test40
-rw-r--r--test/Object/obj2yaml-coff-long-file-symbol.test3
-rw-r--r--test/Object/obj2yaml.test32
-rw-r--r--test/Object/objdump-relocations.test12
-rw-r--r--test/Object/readobj-elf-versioning.test4
-rw-r--r--test/Object/readobj-shared-object.test18
-rw-r--r--test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml16
-rw-r--r--test/Object/yaml2obj-elf-section-basic.yaml13
-rw-r--r--test/Object/yaml2obj-elf-symbol-basic.yaml2
25 files changed, 253 insertions, 41 deletions
diff --git a/test/Object/Inputs/COFF/i386.yaml b/test/Object/Inputs/COFF/i386.yaml
index 1badad8..7873df0 100644
--- a/test/Object/Inputs/COFF/i386.yaml
+++ b/test/Object/Inputs/COFF/i386.yaml
@@ -39,8 +39,12 @@ symbols:
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
- NumberOfAuxSymbols: 1
- AuxiliaryData: !hex "240000000300000000000000010000000000" # |$.................|
+ SectionDefinition:
+ Length: 36
+ NumberOfRelocations: 3
+ NumberOfLinenumbers: 0
+ CheckSum: 0
+ Number: 1
- !Symbol
Name: .data
@@ -49,8 +53,12 @@ symbols:
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
- NumberOfAuxSymbols: 1
- AuxiliaryData: !hex "0D0000000000000000000000020000000000" # |..................|
+ SectionDefinition:
+ Length: 13
+ NumberOfRelocations: 0
+ NumberOfLinenumbers: 0
+ CheckSum: 0
+ Number: 2
- !Symbol
Name: _main
diff --git a/test/Object/Inputs/COFF/long-file-symbol.yaml b/test/Object/Inputs/COFF/long-file-symbol.yaml
new file mode 100644
index 0000000..37caad7
--- /dev/null
+++ b/test/Object/Inputs/COFF/long-file-symbol.yaml
@@ -0,0 +1,14 @@
+---
+header:
+ Machine: IMAGE_FILE_MACHINE_AMD64
+ Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_LINE_NUMS_STRIPPED ]
+sections:
+symbols:
+ - Name: .file
+ Value: 0
+ SectionNumber: 65534
+ SimpleType: IMAGE_SYM_TYPE_NULL
+ ComplexType: IMAGE_SYM_DTYPE_NULL
+ StorageClass: IMAGE_SYM_CLASS_FILE
+ File: filename_with_22_chars
+...
diff --git a/test/Object/Inputs/COFF/x86-64.yaml b/test/Object/Inputs/COFF/x86-64.yaml
index b775ae9..1dc2b10 100644
--- a/test/Object/Inputs/COFF/x86-64.yaml
+++ b/test/Object/Inputs/COFF/x86-64.yaml
@@ -38,8 +38,12 @@ symbols:
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
- NumberOfAuxSymbols: 1
- AuxiliaryData: !hex "260000000300000000000000010000000000" # |&.................|
+ SectionDefinition:
+ Length: 38
+ NumberOfRelocations: 3
+ NumberOfLinenumbers: 0
+ CheckSum: 0
+ Number: 1
- !Symbol
Name: .data
@@ -48,8 +52,12 @@ symbols:
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
- NumberOfAuxSymbols: 1
- AuxiliaryData: !hex "0D0000000000000000000000020000000000" # |..................|
+ SectionDefinition:
+ Length: 13
+ NumberOfRelocations: 0
+ NumberOfLinenumbers: 0
+ CheckSum: 0
+ Number: 2
- !Symbol
Name: main
diff --git a/test/Object/Inputs/absolute.elf-x86-64 b/test/Object/Inputs/absolute.elf-x86-64
new file mode 100644
index 0000000..863ab58
--- /dev/null
+++ b/test/Object/Inputs/absolute.elf-x86-64
Binary files differ
diff --git a/test/Object/Inputs/common.coff-i386 b/test/Object/Inputs/common.coff-i386
new file mode 100644
index 0000000..a61d76c
--- /dev/null
+++ b/test/Object/Inputs/common.coff-i386
Binary files differ
diff --git a/test/Object/Inputs/relocatable-with-section-address.elf-x86-64 b/test/Object/Inputs/relocatable-with-section-address.elf-x86-64
new file mode 100644
index 0000000..7bee9a9
--- /dev/null
+++ b/test/Object/Inputs/relocatable-with-section-address.elf-x86-64
Binary files differ
diff --git a/test/Object/Inputs/thumb-symbols.elf.arm b/test/Object/Inputs/thumb-symbols.elf.arm
new file mode 100644
index 0000000..923eef6
--- /dev/null
+++ b/test/Object/Inputs/thumb-symbols.elf.arm
Binary files differ
diff --git a/test/Object/Inputs/trivial-object-test.elf-mipsel b/test/Object/Inputs/trivial-object-test.elf-mipsel
new file mode 100644
index 0000000..2910a16
--- /dev/null
+++ b/test/Object/Inputs/trivial-object-test.elf-mipsel
Binary files differ
diff --git a/test/Object/Inputs/weak.elf-x86-64 b/test/Object/Inputs/weak.elf-x86-64
new file mode 100644
index 0000000..e45f988
--- /dev/null
+++ b/test/Object/Inputs/weak.elf-x86-64
Binary files differ
diff --git a/test/Object/X86/objdump-disassembly-inline-relocations.test b/test/Object/X86/objdump-disassembly-inline-relocations.test
index 2ef1a43..7861576 100644
--- a/test/Object/X86/objdump-disassembly-inline-relocations.test
+++ b/test/Object/X86/objdump-disassembly-inline-relocations.test
@@ -6,6 +6,10 @@ RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.macho-i386 \
RUN: | FileCheck %s -check-prefix MACHO-i386
RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.macho-x86-64 \
RUN: | FileCheck %s -check-prefix MACHO-x86-64
+RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.elf-i386 \
+RUN: | FileCheck %s -check-prefix ELF-i386
+RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix ELF-x86-64
COFF-i386: file format COFF-i386
COFF-i386: Disassembly of section .text:
@@ -65,3 +69,34 @@ MACHO-x86-64: 1b: X86_64_RELOC_BRANCH _SomeOther
MACHO-x86-64: 1f: 8b 44 24 04 movl 4(%rsp), %eax
MACHO-x86-64: 23: 48 83 c4 08 addq $8, %rsp
MACHO-x86-64: 27: c3 ret
+
+ELF-i386: file format ELF32-i386
+ELF-i386: Disassembly of section .text:
+ELF-i386: main:
+ELF-i386: 0: 83 ec 0c subl $12, %esp
+ELF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp)
+ELF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp)
+ELF-i386: e: R_386_32 Unknown
+ELF-i386: 12: e8 fc ff ff ff calll -4
+ELF-i386: 13: R_386_PC32 Unknown
+ELF-i386: 17: e8 fc ff ff ff calll -4
+ELF-i386: 18: R_386_PC32 Unknown
+ELF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax
+ELF-i386: 20: 83 c4 0c addl $12, %esp
+ELF-i386: 23: c3 ret
+
+ELF-x86-64: file format ELF64-x86-64
+ELF-x86-64: Disassembly of section .text:
+ELF-x86-64: main:
+ELF-x86-64: 0: 48 83 ec 08 subq $8, %rsp
+ELF-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp)
+ELF-x86-64: c: bf 00 00 00 00 movl $0, %edi
+ELF-x86-64: d: R_X86_64_32S .rodata.str1.1+0
+ELF-x86-64: 11: e8 00 00 00 00 callq 0
+ELF-x86-64: 12: R_X86_64_PC32 puts-4-P
+ELF-x86-64: 16: 30 c0 xorb %al, %al
+ELF-x86-64: 18: e8 00 00 00 00 callq 0
+ELF-x86-64: 19: R_X86_64_PC32 SomeOtherFunction-4-P
+ELF-x86-64: 1d: 8b 44 24 04 movl 4(%rsp), %eax
+ELF-x86-64: 21: 48 83 c4 08 addq $8, %rsp
+ELF-x86-64: 25: c3 ret
diff --git a/test/Object/extract.ll b/test/Object/extract.ll
index 4e519ae..9f93c68 100644
--- a/test/Object/extract.ll
+++ b/test/Object/extract.ll
@@ -40,6 +40,7 @@
; new archive and checking that date.
; RUN: rm -f very_long_bytecode_file_name.bc
; RUN: llvm-ar xo %p/Inputs/GNU.a very_long_bytecode_file_name.bc
+; RUN: rm -f %t.a
; RUN: llvm-ar rc %t.a very_long_bytecode_file_name.bc
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s
diff --git a/test/Object/mangle-ir.ll b/test/Object/mangle-ir.ll
new file mode 100644
index 0000000..725d788
--- /dev/null
+++ b/test/Object/mangle-ir.ll
@@ -0,0 +1,8 @@
+; RUN: llvm-as %s -o - | llvm-nm - | FileCheck %s
+
+target datalayout = "m:o"
+
+; CHECK: T _f
+define void @f() {
+ ret void
+}
diff --git a/test/Object/nm-archive.test b/test/Object/nm-archive.test
index 0d43cc7..fbbf051 100644
--- a/test/Object/nm-archive.test
+++ b/test/Object/nm-archive.test
@@ -28,7 +28,7 @@ Or in an archive with no symtab or string table.
RUN: llvm-nm %p/Inputs/archive-test.a-gnu-minimal
-And don't crash when asked to print a non existing symtab.
+And don't crash when asked to print a non-existing symtab.
RUN: llvm-nm -s %p/Inputs/archive-test.a-gnu-minimal
Don't reject an empty archive.
diff --git a/test/Object/nm-error.test b/test/Object/nm-error.test
index 146b887..bed9ccb 100644
--- a/test/Object/nm-error.test
+++ b/test/Object/nm-error.test
@@ -1,12 +1,10 @@
Test that llvm-nm returns an error because of the unknown file type, but
keeps processing subsequent files.
-Note: We use a temporary file since the tests don't run with pipefail.
-
RUN: touch %t
RUN: not llvm-nm %p/Inputs/trivial-object-test.elf-i386 %t \
-RUN: %p/Inputs/trivial-object-test.elf-i386 > %t.log
-RUN: FileCheck %s < %t.log
+RUN: %p/Inputs/trivial-object-test.elf-i386 | \
+RUN: FileCheck %s
CHECK: U SomeOtherFunction
CHECK: 00000000 T main
diff --git a/test/Object/nm-ir.ll b/test/Object/nm-ir.ll
new file mode 100644
index 0000000..ddf4125
--- /dev/null
+++ b/test/Object/nm-ir.ll
@@ -0,0 +1,34 @@
+; RUN: llvm-as %s -o - | llvm-nm - | FileCheck %s
+
+; CHECK: D a1
+; CHECK-NEXT: d a2
+; CHECK-NEXT: T f1
+; CHECK-NEXT: t f2
+; CHECK-NEXT: W f3
+; CHECK-NEXT: U f4
+; CHECK-NEXT: D g1
+; CHECK-NEXT: d g2
+; CHECK-NEXT: C g3
+; CHECK-NOT: g4
+
+@g1 = global i32 42
+@g2 = internal global i32 42
+@g3 = common global i32 0
+@g4 = private global i32 42
+
+@a1 = alias i32* @g1
+@a2 = alias internal i32* @g1
+
+define void @f1() {
+ ret void
+}
+
+define internal void @f2() {
+ ret void
+}
+
+define linkonce_odr void @f3() {
+ ret void
+}
+
+declare void @f4()
diff --git a/test/Object/nm-shared-object.test b/test/Object/nm-shared-object.test
index a57b940..b77b2ce 100644
--- a/test/Object/nm-shared-object.test
+++ b/test/Object/nm-shared-object.test
@@ -1,23 +1,31 @@
RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF-32
-RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-x86-64 \
-RUN: | FileCheck %s -check-prefix ELF-64
-
-; Note: tls_sym should be 'D' (not '?'), but TLS is not
-; yet recognized by ObjectFile.
+ELF-32-NOT: U
ELF-32: 0012c8 A __bss_start
ELF-32: 0012c8 A _edata
ELF-32: 0012cc A _end
ELF-32: 0012c8 B common_sym
ELF-32: 0012c4 D defined_sym
ELF-32: 0001f0 T global_func
-ELF-32: ? tls_sym
+ELF-32: 000000 D tls_sym
+RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix ELF-64
+
+ELF-64-NOT: U
ELF-64: 200454 A __bss_start
ELF-64: 200454 A _edata
ELF-64: 200458 A _end
ELF-64: 200454 B common_sym
ELF-64: 200450 D defined_sym
ELF-64: 0002f0 T global_func
-ELF-64: ? tls_sym
+ELF-64: 000000 D tls_sym
+
+RUN: not llvm-nm -D %p/Inputs/weak-global-symbol.macho-i386 2>&1 \
+RUN: | FileCheck %s -check-prefix ERROR
+
+RUN: not llvm-nm -D %p/Inputs/trivial-object-test.coff-i386 2>&1 \
+RUN: | FileCheck %s -check-prefix ERROR
+
+ERROR: File format has no dynamic symbol table.
diff --git a/test/Object/nm-trivial-object.test b/test/Object/nm-trivial-object.test
index 748d6f2..4e90f96 100644
--- a/test/Object/nm-trivial-object.test
+++ b/test/Object/nm-trivial-object.test
@@ -6,10 +6,21 @@ RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF
RUN: llvm-nm %p/Inputs/trivial-object-test.elf-x86-64 \
RUN: | FileCheck %s -check-prefix ELF
+RUN: llvm-nm %p/Inputs/weak.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix WEAK-ELF
+RUN: llvm-nm %p/Inputs/absolute.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix ABSOLUTE-ELF
RUN: llvm-nm %p/Inputs/trivial-object-test.macho-i386 \
RUN: | FileCheck %s -check-prefix macho
RUN: llvm-nm %p/Inputs/trivial-object-test.macho-x86-64 \
RUN: | FileCheck %s -check-prefix macho64
+RUN: llvm-nm %p/Inputs/common.coff-i386 \
+RUN: | FileCheck %s -check-prefix COFF-COMMON
+RUN: llvm-nm %p/Inputs/relocatable-with-section-address.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix ELF-SEC-ADDR
+RUN: llvm-nm %p/Inputs/thumb-symbols.elf.arm \
+RUN: | FileCheck %s -check-prefix ELF-THUMB
+
COFF: 00000000 d .data
COFF: 00000000 t .text
@@ -18,11 +29,27 @@ COFF: U {{_?}}SomeOtherFunction
COFF: 00000000 T {{_?}}main
COFF: U {{_?}}puts
+COFF-COMMON: 00000000 b .bss
+COFF-COMMON-NEXT: 00000000 d .data
+COFF-COMMON-NEXT: 00000000 d .drectve
+COFF-COMMON-NEXT: 00000000 n .file
+COFF-COMMON-NEXT: 00000000 r .rdata$zzz
+COFF-COMMON-NEXT: 00000000 t .text
+COFF-COMMON-NEXT: C _a
+
+
ELF-NOT: U
ELF: U SomeOtherFunction
ELF: 00000000 T main
ELF: U puts
+WEAK-ELF: w f1
+WEAK-ELF: 00000000 W f2
+WEAK-ELF: v x1
+WEAK-ELF: 00000000 V x2
+
+ABSOLUTE-ELF: 00000123 a a1
+ABSOLUTE-ELF: 00000123 A a2
macho: 00000000 U _SomeOtherFunction
macho: 00000000 T _main
@@ -32,3 +59,16 @@ macho64: 00000028 s L_.str
macho64: 00000000 U _SomeOtherFunction
macho64: 00000000 T _main
macho64: 00000000 U _puts
+
+
+Test that nm uses addresses even with ELF .o files.
+ELF-SEC-ADDR: 00000058 D a
+ELF-SEC-ADDR-NEXT: 0000005c D b
+ELF-SEC-ADDR-NEXT: 00000040 T f
+ELF-SEC-ADDR-NEXT: 00000050 T g
+ELF-SEC-ADDR-NEXT: 00000060 D p
+
+
+Test that we drop the thumb bit only from function addresses.
+ELF-THUMB: 00000000 t f
+ELF-THUMB: 00000003 t g
diff --git a/test/Object/obj2yaml-coff-long-file-symbol.test b/test/Object/obj2yaml-coff-long-file-symbol.test
new file mode 100644
index 0000000..3a4d380
--- /dev/null
+++ b/test/Object/obj2yaml-coff-long-file-symbol.test
@@ -0,0 +1,3 @@
+RUN: yaml2obj %p/Inputs/COFF/long-file-symbol.yaml | obj2yaml | FileCheck %s --check-prefix COFF-I386
+
+COFF-I386: File: filename_with_22_chars
diff --git a/test/Object/obj2yaml.test b/test/Object/obj2yaml.test
index 4954133..d96275f 100644
--- a/test/Object/obj2yaml.test
+++ b/test/Object/obj2yaml.test
@@ -36,8 +36,12 @@ COFF-I386-NEXT: SectionNumber: 1
COFF-I386-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL
COFF-I386-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL
COFF-I386-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC
-COFF-I386-NEXT: NumberOfAuxSymbols: 1
-COFF-I386-NEXT: AuxiliaryData: 240000000300000000000000010000000000
+COFF-I386-NEXT: SectionDefinition:
+COFF-I386-NEXT: Length: 36
+COFF-I386-NEXT: NumberOfRelocations: 3
+COFF-I386-NEXT: NumberOfLinenumbers: 0
+COFF-I386-NEXT: CheckSum: 0
+COFF-I386-NEXT: Number: 1
COFF-I386: - Name: .data
COFF-I386-NEXT: Value: 0
@@ -45,8 +49,12 @@ COFF-I386-NEXT: SectionNumber: 2
COFF-I386-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL
COFF-I386-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL
COFF-I386-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC
-COFF-I386-NEXT: NumberOfAuxSymbols: 1
-COFF-I386-NEXT: AuxiliaryData: 0D0000000000000000000000020000000000
+COFF-I386-NEXT: SectionDefinition:
+COFF-I386-NEXT: Length: 13
+COFF-I386-NEXT: NumberOfRelocations: 0
+COFF-I386-NEXT: NumberOfLinenumbers: 0
+COFF-I386-NEXT: CheckSum: 0
+COFF-I386-NEXT: Number: 2
COFF-I386: - Name: _main
COFF-I386-NEXT: Value: 0
@@ -111,8 +119,12 @@ COFF-X86-64-NEXT: SectionNumber: 1
COFF-X86-64-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL
COFF-X86-64-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL
COFF-X86-64-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC
-COFF-X86-64-NEXT: NumberOfAuxSymbols: 1
-COFF-X86-64-NEXT: AuxiliaryData: 260000000300000000000000010000000000
+COFF-X86-64-NEXT: SectionDefinition:
+COFF-X86-64-NEXT: Length: 38
+COFF-X86-64-NEXT: NumberOfRelocations: 3
+COFF-X86-64-NEXT: NumberOfLinenumbers: 0
+COFF-X86-64-NEXT: CheckSum: 0
+COFF-X86-64-NEXT: Number: 1
COFF-X86-64: - Name: .data
COFF-X86-64-NEXT: Value: 0
@@ -120,8 +132,12 @@ COFF-X86-64-NEXT: SectionNumber: 2
COFF-X86-64-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL
COFF-X86-64-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL
COFF-X86-64-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC
-COFF-X86-64-NEXT: NumberOfAuxSymbols: 1
-COFF-X86-64-NEXT: AuxiliaryData: 0D0000000000000000000000020000000000
+COFF-X86-64-NEXT: SectionDefinition:
+COFF-X86-64-NEXT: Length: 13
+COFF-X86-64-NEXT: NumberOfRelocations: 0
+COFF-X86-64-NEXT: NumberOfLinenumbers: 0
+COFF-X86-64-NEXT: CheckSum: 0
+COFF-X86-64-NEXT: Number: 2
COFF-X86-64: - Name: main
COFF-X86-64-NEXT: Value: 0
diff --git a/test/Object/objdump-relocations.test b/test/Object/objdump-relocations.test
index 95c4c4d..28cac10 100644
--- a/test/Object/objdump-relocations.test
+++ b/test/Object/objdump-relocations.test
@@ -10,6 +10,8 @@ RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-hexagon \
RUN: | FileCheck %s -check-prefix ELF-hexagon
RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-mips64el \
RUN: | FileCheck %s -check-prefix ELF-MIPS64EL
+RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-mipsel \
+RUN: | FileCheck %s -check-prefix ELF-MIPSEL
RUN: llvm-objdump -r %p/Inputs/relocations.elf-x86-64 \
RUN: | FileCheck %s -check-prefix ELF-complex-x86-64
@@ -45,7 +47,15 @@ ELF-hexagon: R_HEX_B22_PCREL puts
// Note: this file was produced with gas to make sure we don't end up in a
// situation where LLVM produces and accepts a broken file.
ELF-MIPS64EL: .data
-ELF-MIPS64EL: R_MIPS_64
+ELF-MIPS64EL: R_MIPS_64/R_MIPS_NONE/R_MIPS_NONE zed
+
+ELF-MIPSEL: .rel.text
+ELF-MIPSEL: R_MIPS_HI16 _gp_disp
+ELF-MIPSEL: R_MIPS_LO16 _gp_disp
+ELF-MIPSEL: R_MIPS_GOT16 $.str
+ELF-MIPSEL: R_MIPS_LO16 $.str
+ELF-MIPSEL: R_MIPS_CALL16 puts
+ELF-MIPSEL: R_MIPS_CALL16 SomeOtherFunction
ELF-complex-x86-64: .text
ELF-complex-x86-64-NEXT: R_X86_64_8 .data-4
diff --git a/test/Object/readobj-elf-versioning.test b/test/Object/readobj-elf-versioning.test
index 1f09ef3..4085287 100644
--- a/test/Object/readobj-elf-versioning.test
+++ b/test/Object/readobj-elf-versioning.test
@@ -33,7 +33,7 @@ ELF32: Symbol {
ELF32: Name: puts@GLIBC_2.0
ELF32: Binding: Global
ELF32: Type: Function
-ELF32: Section: (0x0)
+ELF32: Section: Undefined (0x0)
ELF32: }
ELF32: ]
ELF64: DynamicSymbols [
@@ -41,6 +41,6 @@ ELF64: Symbol {
ELF64: Name: puts@GLIBC_2.2.5
ELF64: Binding: Global
ELF64: Type: Function
-ELF64: Section: (0x0)
+ELF64: Section: Undefined (0x0)
ELF64: }
ELF64: ]
diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test
index 72dbd32..516d4c6 100644
--- a/test/Object/readobj-shared-object.test
+++ b/test/Object/readobj-shared-object.test
@@ -191,7 +191,7 @@ ELF: Symbol {
ELF: Name: shared.ll
ELF: Binding: Local
ELF: Type: File
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: local_func
@@ -203,13 +203,13 @@ ELF: Symbol {
ELF: Name: _GLOBAL_OFFSET_TABLE_
ELF: Binding: Local
ELF: Type: Object
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: _DYNAMIC
ELF: Binding: Local
ELF: Type: Object
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: common_sym
@@ -233,13 +233,13 @@ ELF: Symbol {
ELF: Name: __bss_start
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: _end
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: global_func
@@ -251,7 +251,7 @@ ELF: Symbol {
ELF: Name: _edata
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: ]
@@ -278,13 +278,13 @@ ELF: Symbol {
ELF: Name: __bss_start
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: _end
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: global_func
@@ -296,7 +296,7 @@ ELF: Symbol {
ELF: Name: _edata
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: ]
diff --git a/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml b/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml
new file mode 100644
index 0000000..19cc91e
--- /dev/null
+++ b/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml
@@ -0,0 +1,16 @@
+# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s
+!ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_MIPS
+ Flags: [ EF_MIPS_NOREORDER, EF_MIPS_ABI_O32 ]
+
+# CHECK: Format: ELF32-mips
+# CHECK: Arch: mipsel
+# CHECK: Machine: EM_MIPS
+# CHECK: Flags [ (0x1001)
+# CHECK-NEXT: 0x1
+# CHECK-NEXT: 0x1000
+# CHECK-NEXT: ]
diff --git a/test/Object/yaml2obj-elf-section-basic.yaml b/test/Object/yaml2obj-elf-section-basic.yaml
index 34be11d..c1f6935 100644
--- a/test/Object/yaml2obj-elf-section-basic.yaml
+++ b/test/Object/yaml2obj-elf-section-basic.yaml
@@ -33,3 +33,16 @@ Sections:
# CHECK: SectionData (
# CHECK-NEXT: 0000: EBFE
# CHECK-NEXT: )
+#
+# CHECK: Section {
+# CHECK: Name: .symtab (7)
+# CHECK: Type: SHT_SYMTAB (0x2)
+# CHECK: }
+# CHECK: Section {
+# CHECK: Name: .strtab (15)
+# CHECK: Type: SHT_STRTAB (0x3)
+# CHECK: }
+# CHECK: Section {
+# CHECK: Name: .shstrtab (23)
+# CHECK: Type: SHT_STRTAB (0x3)
+# CHECK: }
diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml
index 3fb9b17..6d49ddd 100644
--- a/test/Object/yaml2obj-elf-symbol-basic.yaml
+++ b/test/Object/yaml2obj-elf-symbol-basic.yaml
@@ -37,4 +37,4 @@ Symbols:
# CHECK: Section: .text
# CHECK: Symbol {
# CHECK: Name: undefined_symbol
-# CHECK: Section: (0x0)
+# CHECK: Section: Undefined (0x0)