summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
-rw-r--r--llvm/test/tools/llvm-readobj/reloc_overflow.test80
-rw-r--r--llvm/test/tools/llvm-readobj/xcoff-basic.test77
2 files changed, 157 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/reloc_overflow.test b/llvm/test/tools/llvm-readobj/reloc_overflow.test
new file mode 100644
index 00000000000..accb9e0ab55
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/reloc_overflow.test
@@ -0,0 +1,80 @@
+# RUN: llvm-readobj --sections %p/Inputs/xcoff-reloc-overflow.o | \
+# RUN: FileCheck --check-prefix=SECOVERFLOW %s
+
+# RUN: llvm-readobj --relocs --expand-relocs %p/Inputs/xcoff-reloc-overflow.o | \
+# RUN: FileCheck --check-prefix=RELOCOVERFLOW %s
+
+# SECOVERFLOW: File: {{.*}}xcoff-reloc-overflow.o
+# SECOVERFLOW-NEXT: Format: aixcoff-rs6000
+# SECOVERFLOW-NEXT: Arch: powerpc
+# SECOVERFLOW-NEXT: AddressSize: 32bit
+# SECOVERFLOW-NEXT: Sections [
+# SECOVERFLOW-NEXT: Section {
+# SECOVERFLOW-NEXT: Index: 1
+# SECOVERFLOW-NEXT: Name: .text
+# SECOVERFLOW-NEXT: PhysicalAddress: 0x0
+# SECOVERFLOW-NEXT: VirtualAddress: 0x0
+# SECOVERFLOW-NEXT: Size: 0x38
+# SECOVERFLOW-NEXT: RawDataOffset: 0x8C
+# SECOVERFLOW-NEXT: RelocationPointer: 0x0
+# SECOVERFLOW-NEXT: LineNumberPointer: 0x0
+# SECOVERFLOW-NEXT: NumberOfRelocations: 0
+# SECOVERFLOW-NEXT: NumberOfLineNumbers: 0
+# SECOVERFLOW-NEXT: Type: STYP_TEXT (0x20)
+# SECOVERFLOW-NEXT: }
+# SECOVERFLOW-NEXT: Section {
+# SECOVERFLOW-NEXT: Index: 2
+# SECOVERFLOW-NEXT: Name: .data
+# SECOVERFLOW-NEXT: PhysicalAddress: 0x38
+# SECOVERFLOW-NEXT: VirtualAddress: 0x38
+# SECOVERFLOW-NEXT: Size: 0x1C
+# SECOVERFLOW-NEXT: RawDataOffset: 0xC4
+# SECOVERFLOW-NEXT: RelocationPointer: 0xE0
+# SECOVERFLOW-NEXT: LineNumberPointer: 0x0
+# SECOVERFLOW-NEXT: NumberOfRelocations: 65535
+# SECOVERFLOW-NEXT: NumberOfLineNumbers: 65535
+# SECOVERFLOW-NEXT: Type: STYP_DATA (0x40)
+# SECOVERFLOW-NEXT: }
+# SECOVERFLOW-NEXT: Section {
+# SECOVERFLOW-NEXT: Index: 3
+# SECOVERFLOW-NEXT: Name: .ovrflo
+# SECOVERFLOW-NEXT: NumberOfRelocations: 3
+# SECOVERFLOW-NEXT: NumberOfLineNumbers: 3
+# SECOVERFLOW-NEXT: Size: 0x0
+# SECOVERFLOW-NEXT: RawDataOffset: 0x0
+# SECOVERFLOW-NEXT: RelocationPointer: 0xE0
+# SECOVERFLOW-NEXT: LineNumberPointer: 0x0
+# SECOVERFLOW-NEXT: IndexOfSectionOverflowed: 2
+# SECOVERFLOW-NEXT: IndexOfSectionOverflowed: 2
+# SECOVERFLOW-NEXT: Type: STYP_OVRFLO (0x8000)
+# SECOVERFLOW-NEXT: }
+# SECOVERFLOW-NEXT: ]
+
+# RELOCOVERFLOW: Relocations [
+# RELOCOVERFLOW-NEXT: Section (index: 2) .data {
+# RELOCOVERFLOW-NEXT: Relocation {
+# RELOCOVERFLOW-NEXT: Virtual Address: 0x38
+# RELOCOVERFLOW-NEXT: Symbol: .pb (4)
+# RELOCOVERFLOW-NEXT: IsSigned: No
+# RELOCOVERFLOW-NEXT: FixupBitValue: 0
+# RELOCOVERFLOW-NEXT: Length: 32
+# RELOCOVERFLOW-NEXT: Type: R_POS (0x0)
+# RELOCOVERFLOW-NEXT: }
+# RELOCOVERFLOW-NEXT: Relocation {
+# RELOCOVERFLOW-NEXT: Virtual Address: 0x3C
+# RELOCOVERFLOW-NEXT: Symbol: TOC (12)
+# RELOCOVERFLOW-NEXT: IsSigned: No
+# RELOCOVERFLOW-NEXT: FixupBitValue: 0
+# RELOCOVERFLOW-NEXT: Length: 32
+# RELOCOVERFLOW-NEXT: Type: R_POS (0x0)
+# RELOCOVERFLOW-NEXT: }
+# RELOCOVERFLOW-NEXT: Relocation {
+# RELOCOVERFLOW-NEXT: Virtual Address: 0x50
+# RELOCOVERFLOW-NEXT: Symbol: .text (2)
+# RELOCOVERFLOW-NEXT: IsSigned: No
+# RELOCOVERFLOW-NEXT: FixupBitValue: 0
+# RELOCOVERFLOW-NEXT: Length: 32
+# RELOCOVERFLOW-NEXT: Type: R_POS (0x0)
+# RELOCOVERFLOW-NEXT: }
+# RELOCOVERFLOW-NEXT: }
+# RELOCOVERFLOW-NEXT: ]
diff --git a/llvm/test/tools/llvm-readobj/xcoff-basic.test b/llvm/test/tools/llvm-readobj/xcoff-basic.test
index 4a6bdd1dbdf..8219f20e53d 100644
--- a/llvm/test/tools/llvm-readobj/xcoff-basic.test
+++ b/llvm/test/tools/llvm-readobj/xcoff-basic.test
@@ -10,6 +10,9 @@
# RUN: llvm-readobj --file-header %p/Inputs/xcoff-basic-neg-sym-count.o | \
# RUN: FileCheck --check-prefix=NEGSYMCOUNT %s
+# RUN: llvm-readobj --relocs --expand-relocs %p/Inputs/xcoff-basic.o | \
+# RUN: FileCheck --check-prefix=RELOCSEXP %s
+
# FILEHEADER: File: {{.*}}xcoff-basic.o
# FILEHEADER-NEXT: Format: aixcoff-rs6000
# FILEHEADER-NEXT: Arch: powerpc
@@ -81,3 +84,77 @@
# xcoff-basic-neg-sym-count.o was stripped using the 'strip' utility, and
# manually edited to have a negative symbol table entry count.
+# RELOCSEXP: File: {{.*}}xcoff-basic.o
+# RELOCSEXP-NEXT: Format: aixcoff-rs6000
+# RELOCSEXP-NEXT: Arch: powerpc
+# RELOCSEXP-NEXT: AddressSize: 32bit
+# RELOCSEXP-NEXT: Relocations [
+# RELOCSEXP-NEXT: Section (index: 1) .text {
+# RELOCSEXP-NEXT: Relocation {
+# RELOCSEXP-NEXT: Virtual Address: 0x2
+# RELOCSEXP-NEXT: Symbol: a (85)
+# RELOCSEXP-NEXT: IsSigned: Yes
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 16
+# RELOCSEXP-NEXT: Type: R_TOC (0x3)
+# RELOCSEXP-NEXT: }
+
+# RELOCSEXP: Virtual Address: 0x90
+# RELOCSEXP-NEXT: Symbol: .__tls_get_addr (118)
+# RELOCSEXP-NEXT: IsSigned: Yes
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 26
+# RELOCSEXP-NEXT: Type: R_RBA (0x18)
+# RELOCSEXP-NEXT: }
+# RELOCSEXP-NEXT: }
+# RELOCSEXP-NEXT: Section (index: 2) .data {
+# RELOCSEXP-NEXT: Relocation {
+# RELOCSEXP-NEXT: Virtual Address: 0x100
+# RELOCSEXP-NEXT: Symbol: A (78)
+# RELOCSEXP-NEXT: IsSigned: No
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 32
+# RELOCSEXP-NEXT: Type: R_POS (0x0)
+# RELOCSEXP-NEXT: }
+
+# RELOCSEXP: Virtual Address: 0x110
+# RELOCSEXP-NEXT: Symbol: J (96)
+# RELOCSEXP-NEXT: IsSigned: No
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 32
+# RELOCSEXP-NEXT: Type: R_POS (0x0)
+# RELOCSEXP-NEXT: }
+
+# RELOCSEXP: Virtual Address: 0x114
+# RELOCSEXP-NEXT: Symbol: j (100)
+# RELOCSEXP-NEXT: IsSigned: No
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 32
+# RELOCSEXP-NEXT: Type: R_TLS (0x20)
+# RELOCSEXP-NEXT: }
+
+# RELOCSEXP: Virtual Address: 0x124
+# RELOCSEXP-NEXT: Symbol: d (111)
+# RELOCSEXP-NEXT: IsSigned: No
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 32
+# RELOCSEXP-NEXT: Type: R_TLSM (0x24)
+# RELOCSEXP-NEXT: }
+
+# RELOCSEXP: Virtual Address: 0x128
+# RELOCSEXP-NEXT: Symbol: (76)
+# RELOCSEXP-NEXT: IsSigned: No
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 32
+# RELOCSEXP-NEXT: Type: R_POS (0x0)
+# RELOCSEXP-NEXT: }
+
+# RELOCSEXP: Virtual Address: 0x154
+# RELOCSEXP-NEXT: Symbol: TOC (72)
+# RELOCSEXP-NEXT: IsSigned: No
+# RELOCSEXP-NEXT: FixupBitValue: 0
+# RELOCSEXP-NEXT: Length: 32
+# RELOCSEXP-NEXT: Type: R_POS (0x0)
+# RELOCSEXP-NEXT: }
+# RELOCSEXP-NEXT: }
+# RELOCSEXP-NEXT:]
OpenPOWER on IntegriCloud