Improve the --expand-relocs handling of MachO.

In a relocation target can take 3 basic forms

* A r_value in scattered relocations.
* A symbol in external relocations.
* A section is non-external relocations.

Have the dump reflect that. With this change we go from

CHECK-NEXT:       Extern: 0
CHECK-NEXT:       Type: X86_64_RELOC_SUBTRACTOR (5)
CHECK-NEXT:       Symbol: 0x2
CHECK-NEXT:       Scattered: 0

To just

// CHECK-NEXT:       Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT:       Section: __data (2)

Since the relocation is with a section, we print the seciton name and don't
need to say that it is not scattered or external.

Someone motivated can add further special cases for things like
ARM64_RELOC_ADDEND and ARM_RELOC_PAIR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240073 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2015-06-18 22:38:20 +00:00
parent d30c2356b0
commit 28b186f3cc
17 changed files with 127 additions and 459 deletions

View File

@ -2012,9 +2012,11 @@ MachOObjectFile::getAnyRelocationSection(
const MachO::any_relocation_info &RE) const { const MachO::any_relocation_info &RE) const {
if (isRelocationScattered(RE) || getPlainRelocationExternal(RE)) if (isRelocationScattered(RE) || getPlainRelocationExternal(RE))
return *section_end(); return *section_end();
unsigned SecNum = getPlainRelocationSymbolNum(RE) - 1; unsigned SecNum = getPlainRelocationSymbolNum(RE);
if (SecNum == MachO::R_ABS || SecNum > Sections.size())
return *section_end();
DataRefImpl DRI; DataRefImpl DRI;
DRI.d.a = SecNum; DRI.d.a = SecNum - 1;
return SectionRef(DRI, this); return SectionRef(DRI, this);
} }

View File

@ -66,46 +66,36 @@ L_.str: ; @.str
; DARWIN-G4-DUMP: Offset: 0x34 ; DARWIN-G4-DUMP: Offset: 0x34
; DARWIN-G4-DUMP: PCRel: 1 ; DARWIN-G4-DUMP: PCRel: 1
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: 0
; DARWIN-G4-DUMP: Type: PPC_RELOC_BR24 (3) ; DARWIN-G4-DUMP: Type: PPC_RELOC_BR24 (3)
; DARWIN-G4-DUMP: Symbol: 0x3 ; DARWIN-G4-DUMP: Section: __picsymbolstub1
; DARWIN-G4-DUMP: Scattered: 0
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0x30 ; DARWIN-G4-DUMP: Offset: 0x30
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_LO16_SECTDIFF (11) ; DARWIN-G4-DUMP: Type: PPC_RELOC_LO16_SECTDIFF (11)
; DARWIN-G4-DUMP: Symbol: 0x74 ; DARWIN-G4-DUMP: Value: 0x74
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0x0 ; DARWIN-G4-DUMP: Offset: 0x0
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1) ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
; DARWIN-G4-DUMP: Symbol: 0x14 ; DARWIN-G4-DUMP: Value: 0x14
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0x2C ; DARWIN-G4-DUMP: Offset: 0x2C
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_HA16_SECTDIFF (12) ; DARWIN-G4-DUMP: Type: PPC_RELOC_HA16_SECTDIFF (12)
; DARWIN-G4-DUMP: Symbol: 0x74 ; DARWIN-G4-DUMP: Value: 0x74
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0x60 ; DARWIN-G4-DUMP: Offset: 0x60
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1) ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
; DARWIN-G4-DUMP: Symbol: 0x14 ; DARWIN-G4-DUMP: Value: 0x14
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Section __picsymbolstub1 { ; DARWIN-G4-DUMP: Section __picsymbolstub1 {
@ -113,37 +103,29 @@ L_.str: ; @.str
; DARWIN-G4-DUMP: Offset: 0x14 ; DARWIN-G4-DUMP: Offset: 0x14
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_LO16_SECTDIFF (11) ; DARWIN-G4-DUMP: Type: PPC_RELOC_LO16_SECTDIFF (11)
; DARWIN-G4-DUMP: Symbol: 0x70 ; DARWIN-G4-DUMP: Value: 0x70
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0x0 ; DARWIN-G4-DUMP: Offset: 0x0
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1) ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
; DARWIN-G4-DUMP: Symbol: 0x58 ; DARWIN-G4-DUMP: Value: 0x58
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0xC ; DARWIN-G4-DUMP: Offset: 0xC
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_HA16_SECTDIFF (12) ; DARWIN-G4-DUMP: Type: PPC_RELOC_HA16_SECTDIFF (12)
; DARWIN-G4-DUMP: Symbol: 0x70 ; DARWIN-G4-DUMP: Value: 0x70
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Relocation { ; DARWIN-G4-DUMP: Relocation {
; DARWIN-G4-DUMP: Offset: 0x18 ; DARWIN-G4-DUMP: Offset: 0x18
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: N/A
; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1) ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
; DARWIN-G4-DUMP: Symbol: 0x58 ; DARWIN-G4-DUMP: Value: 0x58
; DARWIN-G4-DUMP: Scattered: 1
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: Section __la_symbol_ptr { ; DARWIN-G4-DUMP: Section __la_symbol_ptr {
@ -151,10 +133,8 @@ L_.str: ; @.str
; DARWIN-G4-DUMP: Offset: 0x0 ; DARWIN-G4-DUMP: Offset: 0x0
; DARWIN-G4-DUMP: PCRel: 0 ; DARWIN-G4-DUMP: PCRel: 0
; DARWIN-G4-DUMP: Length: 2 ; DARWIN-G4-DUMP: Length: 2
; DARWIN-G4-DUMP: Extern: 1
; DARWIN-G4-DUMP: Type: PPC_RELOC_VANILLA (0) ; DARWIN-G4-DUMP: Type: PPC_RELOC_VANILLA (0)
; DARWIN-G4-DUMP: Symbol: dyld_stub_binding_helper ; DARWIN-G4-DUMP: Symbol: dyld_stub_binding_helper
; DARWIN-G4-DUMP: Scattered: 0
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP: } ; DARWIN-G4-DUMP: }
; DARWIN-G4-DUMP:] ; DARWIN-G4-DUMP:]

View File

@ -27,37 +27,29 @@
// CHECK-NEXT: Offset: 0x60 // CHECK-NEXT: Offset: 0x60
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x1 // CHECK-NEXT: Section: __text (1)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x40 // CHECK-NEXT: Offset: 0x40
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x1 // CHECK-NEXT: Section: __text (1)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x20 // CHECK-NEXT: Offset: 0x20
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x1 // CHECK-NEXT: Section: __text (1)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x1 // CHECK-NEXT: Section: __text (1)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]
// CHECK-NEXT: SectionData ( // CHECK-NEXT: SectionData (

View File

@ -9,10 +9,8 @@
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: Lbar // CHECK-NEXT: Symbol: Lbar
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]

View File

@ -40,127 +40,99 @@ L_.str:
; CHECK-NEXT: Offset: 0x24 ; CHECK-NEXT: Offset: 0x24
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3) ; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)
; CHECK-NEXT: Symbol: L_.str ; CHECK-NEXT: Symbol: L_.str
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x20 ; CHECK-NEXT: Offset: 0x20
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_GOT_LOAD_PAGEOFF12 (6) ; CHECK-NEXT: Type: ARM64_RELOC_GOT_LOAD_PAGEOFF12 (6)
; CHECK-NEXT: Symbol: _data_ext ; CHECK-NEXT: Symbol: _data_ext
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x1C ; CHECK-NEXT: Offset: 0x1C
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_GOT_LOAD_PAGE21 (5) ; CHECK-NEXT: Type: ARM64_RELOC_GOT_LOAD_PAGE21 (5)
; CHECK-NEXT: Symbol: _data_ext ; CHECK-NEXT: Symbol: _data_ext
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x18 ; CHECK-NEXT: Offset: 0x18
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 0
; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10) ; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)
; CHECK-NEXT: Symbol: 0x4 ; CHECK-NEXT: Section: - (4)
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x18 ; CHECK-NEXT: Offset: 0x18
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4) ; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)
; CHECK-NEXT: Symbol: _data ; CHECK-NEXT: Symbol: _data
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x14 ; CHECK-NEXT: Offset: 0x14
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 0
; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10) ; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)
; CHECK-NEXT: Symbol: 0x1 ; CHECK-NEXT: Section: __text
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x14 ; CHECK-NEXT: Offset: 0x14
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3) ; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)
; CHECK-NEXT: Symbol: _data ; CHECK-NEXT: Symbol: _data
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x10 ; CHECK-NEXT: Offset: 0x10
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 0
; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10) ; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)
; CHECK-NEXT: Symbol: 0x4 ; CHECK-NEXT: Section: - (4)
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x10 ; CHECK-NEXT: Offset: 0x10
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4) ; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)
; CHECK-NEXT: Symbol: _data ; CHECK-NEXT: Symbol: _data
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0xC ; CHECK-NEXT: Offset: 0xC
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4) ; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)
; CHECK-NEXT: Symbol: _data ; CHECK-NEXT: Symbol: _data
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x8 ; CHECK-NEXT: Offset: 0x8
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3) ; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)
; CHECK-NEXT: Symbol: _data ; CHECK-NEXT: Symbol: _data
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x4 ; CHECK-NEXT: Offset: 0x4
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 0
; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10) ; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)
; CHECK-NEXT: Symbol: 0x14 ; CHECK-NEXT: Section: - (20)
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x4 ; CHECK-NEXT: Offset: 0x4
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_BRANCH26 (2) ; CHECK-NEXT: Type: ARM64_RELOC_BRANCH26 (2)
; CHECK-NEXT: Symbol: _func ; CHECK-NEXT: Symbol: _func
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x0 ; CHECK-NEXT: Offset: 0x0
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_BRANCH26 (2) ; CHECK-NEXT: Type: ARM64_RELOC_BRANCH26 (2)
; CHECK-NEXT: Symbol: _func ; CHECK-NEXT: Symbol: _func
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Section __data { ; CHECK-NEXT: Section __data {
@ -168,91 +140,71 @@ L_.str:
; CHECK-NEXT: Offset: 0x2C ; CHECK-NEXT: Offset: 0x2C
; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: PCRel: 1
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_POINTER_TO_GOT (7) ; CHECK-NEXT: Type: ARM64_RELOC_POINTER_TO_GOT (7)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x24 ; CHECK-NEXT: Offset: 0x24
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_POINTER_TO_GOT (7) ; CHECK-NEXT: Type: ARM64_RELOC_POINTER_TO_GOT (7)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x20 ; CHECK-NEXT: Offset: 0x20
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1) ; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1)
; CHECK-NEXT: Symbol: _bar ; CHECK-NEXT: Symbol: _bar
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x20 ; CHECK-NEXT: Offset: 0x20
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x18 ; CHECK-NEXT: Offset: 0x18
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1) ; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1)
; CHECK-NEXT: Symbol: _bar ; CHECK-NEXT: Symbol: _bar
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x18 ; CHECK-NEXT: Offset: 0x18
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x10 ; CHECK-NEXT: Offset: 0x10
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1) ; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1)
; CHECK-NEXT: Symbol: _bar ; CHECK-NEXT: Symbol: _bar
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x10 ; CHECK-NEXT: Offset: 0x10
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x8 ; CHECK-NEXT: Offset: 0x8
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: Relocation { ; CHECK-NEXT: Relocation {
; CHECK-NEXT: Offset: 0x0 ; CHECK-NEXT: Offset: 0x0
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
; CHECK-NEXT: Symbol: _foo ; CHECK-NEXT: Symbol: _foo
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: ] ; CHECK-NEXT: ]

View File

@ -10,37 +10,29 @@
// CHECK-NEXT: Offset: 0x18 // CHECK-NEXT: Offset: 0x18
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: Llit16 // CHECK-NEXT: Symbol: Llit16
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x10 // CHECK-NEXT: Offset: 0x10
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: Llit8 // CHECK-NEXT: Symbol: Llit8
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: Llit4 // CHECK-NEXT: Symbol: Llit4
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: Lcfstring // CHECK-NEXT: Symbol: Lcfstring
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]

View File

@ -25,37 +25,29 @@ L1:
// CHECK-NEXT: Offset: 0x18 // CHECK-NEXT: Offset: 0x18
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: L1 // CHECK-NEXT: Symbol: L1
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x10 // CHECK-NEXT: Offset: 0x10
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: L1 // CHECK-NEXT: Symbol: L1
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: L0 // CHECK-NEXT: Symbol: L0
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: L0 // CHECK-NEXT: Symbol: L0
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]

View File

@ -9,10 +9,8 @@
; CHECK-NEXT: Offset: 0x0 ; CHECK-NEXT: Offset: 0x0
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Length: 3
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
; CHECK-NEXT: Symbol: Lbar ; CHECK-NEXT: Symbol: Lbar
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: ] ; CHECK-NEXT: ]

View File

@ -8,10 +8,8 @@
; CHECK-NEXT: Offset: 0x0 ; CHECK-NEXT: Offset: 0x0
; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: PCRel: 0
; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Length: 2
; CHECK-NEXT: Extern: 1
; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4) ; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)
; CHECK-NEXT: Symbol: ltmp1 ; CHECK-NEXT: Symbol: ltmp1
; CHECK-NEXT: Scattered: 0
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: } ; CHECK-NEXT: }
; CHECK-NEXT: ] ; CHECK-NEXT: ]

View File

@ -12,37 +12,29 @@ foo:
@ CHECK-NEXT: Offset: 0x4 @ CHECK-NEXT: Offset: 0x4
@ CHECK-NEXT: PCRel: 0 @ CHECK-NEXT: PCRel: 0
@ CHECK-NEXT: Length: 3 @ CHECK-NEXT: Length: 3
@ CHECK-NEXT: Extern: 1
@ CHECK-NEXT: Type: ARM_RELOC_HALF (8) @ CHECK-NEXT: Type: ARM_RELOC_HALF (8)
@ CHECK-NEXT: Symbol: bar @ CHECK-NEXT: Symbol: bar
@ CHECK-NEXT: Scattered: 0
@ CHECK-NEXT: } @ CHECK-NEXT: }
@ CHECK-NEXT: Relocation { @ CHECK-NEXT: Relocation {
@ CHECK-NEXT: Offset: 0x10 @ CHECK-NEXT: Offset: 0x10
@ CHECK-NEXT: PCRel: 0 @ CHECK-NEXT: PCRel: 0
@ CHECK-NEXT: Length: 3 @ CHECK-NEXT: Length: 3
@ CHECK-NEXT: Extern: 0
@ CHECK-NEXT: Type: ARM_RELOC_PAIR (1) @ CHECK-NEXT: Type: ARM_RELOC_PAIR (1)
@ CHECK-NEXT: Symbol: 0xFFFFFF @ CHECK-NEXT: Section: -
@ CHECK-NEXT: Scattered: 0
@ CHECK-NEXT: } @ CHECK-NEXT: }
@ CHECK-NEXT: Relocation { @ CHECK-NEXT: Relocation {
@ CHECK-NEXT: Offset: 0x0 @ CHECK-NEXT: Offset: 0x0
@ CHECK-NEXT: PCRel: 0 @ CHECK-NEXT: PCRel: 0
@ CHECK-NEXT: Length: 2 @ CHECK-NEXT: Length: 2
@ CHECK-NEXT: Extern: 1
@ CHECK-NEXT: Type: ARM_RELOC_HALF (8) @ CHECK-NEXT: Type: ARM_RELOC_HALF (8)
@ CHECK-NEXT: Symbol: bar @ CHECK-NEXT: Symbol: bar
@ CHECK-NEXT: Scattered: 0
@ CHECK-NEXT: } @ CHECK-NEXT: }
@ CHECK-NEXT: Relocation { @ CHECK-NEXT: Relocation {
@ CHECK-NEXT: Offset: 0x0 @ CHECK-NEXT: Offset: 0x0
@ CHECK-NEXT: PCRel: 0 @ CHECK-NEXT: PCRel: 0
@ CHECK-NEXT: Length: 2 @ CHECK-NEXT: Length: 2
@ CHECK-NEXT: Extern: 0
@ CHECK-NEXT: Type: ARM_RELOC_PAIR (1) @ CHECK-NEXT: Type: ARM_RELOC_PAIR (1)
@ CHECK-NEXT: Symbol: 0xFFFFFF @ CHECK-NEXT: Section: -
@ CHECK-NEXT: Scattered: 0
@ CHECK-NEXT: } @ CHECK-NEXT: }
@ CHECK-NEXT: } @ CHECK-NEXT: }
@ CHECK-NEXT: ] @ CHECK-NEXT: ]

View File

@ -14,19 +14,15 @@ L_var2:
// CHECK-NEXT: Offset: 0x4 // CHECK-NEXT: Offset: 0x4
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT: Symbol: 0x2 // CHECK-NEXT: Section: __data (2)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x4 // CHECK-NEXT: Offset: 0x4
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x2 // CHECK-NEXT: Section: __data (2)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]

View File

@ -93,46 +93,36 @@ L6:
// CHECK-NEXT: Offset: 0x20 // CHECK-NEXT: Offset: 0x20
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x4 // CHECK-NEXT: Section: __literal8
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x18 // CHECK-NEXT: Offset: 0x18
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: f6 // CHECK-NEXT: Symbol: f6
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x10 // CHECK-NEXT: Offset: 0x10
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x4 // CHECK-NEXT: Section: __literal8
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_GOT (4) // CHECK-NEXT: Type: X86_64_RELOC_GOT (4)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x4 // CHECK-NEXT: Offset: 0x4
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_GOT (4) // CHECK-NEXT: Type: X86_64_RELOC_GOT (4)
// CHECK-NEXT: Symbol: _foobar // CHECK-NEXT: Symbol: _foobar
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Section __text { // CHECK-NEXT: Section __text {
@ -140,289 +130,225 @@ L6:
// CHECK-NEXT: Offset: 0xDA // CHECK-NEXT: Offset: 0xDA
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_GOT (4) // CHECK-NEXT: Type: X86_64_RELOC_GOT (4)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xD3 // CHECK-NEXT: Offset: 0xD3
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: 0x4 // CHECK-NEXT: Section: __literal8
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xCD // CHECK-NEXT: Offset: 0xCD
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: f6 // CHECK-NEXT: Symbol: f6
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xC7 // CHECK-NEXT: Offset: 0xC7
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: 0x4 // CHECK-NEXT: Section: __literal8
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xC1 // CHECK-NEXT: Offset: 0xC1
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: 0x1 // CHECK-NEXT: Section: __data
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xA5 // CHECK-NEXT: Offset: 0xA5
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xA5 // CHECK-NEXT: Offset: 0xA5
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x9D // CHECK-NEXT: Offset: 0x9D
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x9D // CHECK-NEXT: Offset: 0x9D
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x95 // CHECK-NEXT: Offset: 0x95
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x8D // CHECK-NEXT: Offset: 0x8D
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x79 // CHECK-NEXT: Offset: 0x79
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED_4 (8) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED_4 (8)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x71 // CHECK-NEXT: Offset: 0x71
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED_2 (7) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED_2 (7)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x69 // CHECK-NEXT: Offset: 0x69
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED_1 (6) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED_1 (6)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x63 // CHECK-NEXT: Offset: 0x63
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x5C // CHECK-NEXT: Offset: 0x5C
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: _prev // CHECK-NEXT: Symbol: _prev
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x55 // CHECK-NEXT: Offset: 0x55
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT: Symbol: _bar // CHECK-NEXT: Symbol: _bar
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x55 // CHECK-NEXT: Offset: 0x55
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x4D // CHECK-NEXT: Offset: 0x4D
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT: Symbol: _bar // CHECK-NEXT: Symbol: _bar
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x4D // CHECK-NEXT: Offset: 0x4D
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x45 // CHECK-NEXT: Offset: 0x45
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT: Symbol: _bar // CHECK-NEXT: Symbol: _bar
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x45 // CHECK-NEXT: Offset: 0x45
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x3D // CHECK-NEXT: Offset: 0x3D
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x35 // CHECK-NEXT: Offset: 0x35
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x2D // CHECK-NEXT: Offset: 0x2D
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED_4 (8) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED_4 (8)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x26 // CHECK-NEXT: Offset: 0x26
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED_1 (6) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED_1 (6)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x20 // CHECK-NEXT: Offset: 0x20
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x1A // CHECK-NEXT: Offset: 0x1A
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1) // CHECK-NEXT: Type: X86_64_RELOC_SIGNED (1)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x14 // CHECK-NEXT: Offset: 0x14
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_GOT (4) // CHECK-NEXT: Type: X86_64_RELOC_GOT (4)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0xE // CHECK-NEXT: Offset: 0xE
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_GOT_LOAD (3) // CHECK-NEXT: Type: X86_64_RELOC_GOT_LOAD (3)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x7 // CHECK-NEXT: Offset: 0x7
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_BRANCH (2) // CHECK-NEXT: Type: X86_64_RELOC_BRANCH (2)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x2 // CHECK-NEXT: Offset: 0x2
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_BRANCH (2) // CHECK-NEXT: Type: X86_64_RELOC_BRANCH (2)
// CHECK-NEXT: Symbol: _foo // CHECK-NEXT: Symbol: _foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Section __debug_frame { // CHECK-NEXT: Section __debug_frame {
@ -430,19 +356,15 @@ L6:
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: _ext_foo // CHECK-NEXT: Symbol: _ext_foo
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x2 // CHECK-NEXT: Section: __text
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]

View File

@ -59,19 +59,15 @@ _f1:
// CHECK-NEXT: Offset: 0x6 // CHECK-NEXT: Offset: 0x6
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x3 // CHECK-NEXT: Section: __const
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x1 // CHECK-NEXT: Offset: 0x1
// CHECK-NEXT: PCRel: 1 // CHECK-NEXT: PCRel: 1
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x0 // CHECK-NEXT: Section: - (0)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Section __data { // CHECK-NEXT: Section __data {
@ -79,100 +75,78 @@ _f1:
// CHECK-NEXT: Offset: 0x2F // CHECK-NEXT: Offset: 0x2F
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: _f1 // CHECK-NEXT: Symbol: _f1
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x2B // CHECK-NEXT: Offset: 0x2B
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: _f1 // CHECK-NEXT: Symbol: _f1
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x2A // CHECK-NEXT: Offset: 0x2A
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 0 // CHECK-NEXT: Length: 0
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x1D // CHECK-NEXT: Value: 0x1D
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x28 // CHECK-NEXT: Offset: 0x28
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 1 // CHECK-NEXT: Length: 1
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x1D // CHECK-NEXT: Value: 0x1D
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x24 // CHECK-NEXT: Offset: 0x24
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x1D // CHECK-NEXT: Value: 0x1D
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x20 // CHECK-NEXT: Offset: 0x20
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x1D // CHECK-NEXT: Value: 0x1D
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x14 // CHECK-NEXT: Offset: 0x14
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4) // CHECK-NEXT: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4)
// CHECK-NEXT: Symbol: 0x21 // CHECK-NEXT: Value: 0x21
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_PAIR (1) // CHECK-NEXT: Type: GENERIC_RELOC_PAIR (1)
// CHECK-NEXT: Symbol: 0x29 // CHECK-NEXT: Value: 0x29
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x2 // CHECK-NEXT: Section: __data
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x4 // CHECK-NEXT: Offset: 0x4
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: undef // CHECK-NEXT: Symbol: undef
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: undef // CHECK-NEXT: Symbol: undef
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Section __const { // CHECK-NEXT: Section __const {
@ -180,37 +154,29 @@ _f1:
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x1 // CHECK-NEXT: Section: __text
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x4 // CHECK-NEXT: Offset: 0x4
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) // CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0)
// CHECK-NEXT: Symbol: 0x3 // CHECK-NEXT: Section: __const
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4) // CHECK-NEXT: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4)
// CHECK-NEXT: Symbol: 0x1D // CHECK-NEXT: Value: 0x1D
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 2 // CHECK-NEXT: Length: 2
// CHECK-NEXT: Extern: N/A
// CHECK-NEXT: Type: GENERIC_RELOC_PAIR (1) // CHECK-NEXT: Type: GENERIC_RELOC_PAIR (1)
// CHECK-NEXT: Symbol: 0x40 // CHECK-NEXT: Value: 0x40
// CHECK-NEXT: Scattered: 1
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT:] // CHECK-NEXT:]

View File

@ -23,37 +23,29 @@ L1:
// CHECK-NEXT: Offset: 0x18 // CHECK-NEXT: Offset: 0x18
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: L1 // CHECK-NEXT: Symbol: L1
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x10 // CHECK-NEXT: Offset: 0x10
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x3 // CHECK-NEXT: Section: __cstring (3)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: Offset: 0x8
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 1
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: L0 // CHECK-NEXT: Symbol: L0
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: Relocation { // CHECK-NEXT: Relocation {
// CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Offset: 0x0
// CHECK-NEXT: PCRel: 0 // CHECK-NEXT: PCRel: 0
// CHECK-NEXT: Length: 3 // CHECK-NEXT: Length: 3
// CHECK-NEXT: Extern: 0
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
// CHECK-NEXT: Symbol: 0x2 // CHECK-NEXT: Section: __literal4 (2)
// CHECK-NEXT: Scattered: 0
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: } // CHECK-NEXT: }
// CHECK-NEXT: ] // CHECK-NEXT: ]

View File

@ -63,46 +63,36 @@ MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x24 MACHO-PPC-NEXT: Offset: 0x24
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11)
MACHO-PPC-NEXT: Symbol: 0x64 MACHO-PPC-NEXT: Value: 0x64
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x0 MACHO-PPC-NEXT: Offset: 0x0
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0xC MACHO-PPC-NEXT: Value: 0xC
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x1C MACHO-PPC-NEXT: Offset: 0x1C
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12)
MACHO-PPC-NEXT: Symbol: 0x64 MACHO-PPC-NEXT: Value: 0x64
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x58 MACHO-PPC-NEXT: Offset: 0x58
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0xC MACHO-PPC-NEXT: Value: 0xC
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x18 MACHO-PPC-NEXT: Offset: 0x18
MACHO-PPC-NEXT: PCRel: 1 MACHO-PPC-NEXT: PCRel: 1
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: 0
MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3) MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3)
MACHO-PPC-NEXT: Symbol: 0x2 MACHO-PPC-NEXT: Section: __picsymbolstub1 (2)
MACHO-PPC-NEXT: Scattered: 0
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Section __picsymbolstub1 { MACHO-PPC-NEXT: Section __picsymbolstub1 {
@ -110,37 +100,29 @@ MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x14 MACHO-PPC-NEXT: Offset: 0x14
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11)
MACHO-PPC-NEXT: Symbol: 0x68 MACHO-PPC-NEXT: Value: 0x68
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x0 MACHO-PPC-NEXT: Offset: 0x0
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0x48 MACHO-PPC-NEXT: Value: 0x48
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0xC MACHO-PPC-NEXT: Offset: 0xC
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12)
MACHO-PPC-NEXT: Symbol: 0x68 MACHO-PPC-NEXT: Value: 0x68
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x20 MACHO-PPC-NEXT: Offset: 0x20
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0x48 MACHO-PPC-NEXT: Value: 0x48
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Section __la_symbol_ptr { MACHO-PPC-NEXT: Section __la_symbol_ptr {
@ -148,10 +130,8 @@ MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x0 MACHO-PPC-NEXT: Offset: 0x0
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: 1
MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0) MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0)
MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5)
MACHO-PPC-NEXT: Scattered: 0
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: ] MACHO-PPC-NEXT: ]
@ -162,46 +142,36 @@ MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x24 MACHO-PPC64-NEXT: Offset: 0x24
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (14) MACHO-PPC64-NEXT: Type: (14)
MACHO-PPC64-NEXT: Symbol: 0x64 MACHO-PPC64-NEXT: Value: 0x64
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x0 MACHO-PPC64-NEXT: Offset: 0x0
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0xC MACHO-PPC64-NEXT: Value: 0xC
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x1C MACHO-PPC64-NEXT: Offset: 0x1C
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (12) MACHO-PPC64-NEXT: Type: (12)
MACHO-PPC64-NEXT: Symbol: 0x64 MACHO-PPC64-NEXT: Value: 0x64
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x58 MACHO-PPC64-NEXT: Offset: 0x58
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0xC MACHO-PPC64-NEXT: Value: 0xC
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x18 MACHO-PPC64-NEXT: Offset: 0x18
MACHO-PPC64-NEXT: PCRel: 1 MACHO-PPC64-NEXT: PCRel: 1
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: 0
MACHO-PPC64-NEXT: Type: (3) MACHO-PPC64-NEXT: Type: (3)
MACHO-PPC64-NEXT: Symbol: 0x2 MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2)
MACHO-PPC64-NEXT: Scattered: 0
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Section __picsymbolstub1 { MACHO-PPC64-NEXT: Section __picsymbolstub1 {
@ -209,37 +179,29 @@ MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x14 MACHO-PPC64-NEXT: Offset: 0x14
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (14) MACHO-PPC64-NEXT: Type: (14)
MACHO-PPC64-NEXT: Symbol: 0x6C MACHO-PPC64-NEXT: Value: 0x6C
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x0 MACHO-PPC64-NEXT: Offset: 0x0
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0x48 MACHO-PPC64-NEXT: Value: 0x48
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0xC MACHO-PPC64-NEXT: Offset: 0xC
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (12) MACHO-PPC64-NEXT: Type: (12)
MACHO-PPC64-NEXT: Symbol: 0x6C MACHO-PPC64-NEXT: Value: 0x6C
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x24 MACHO-PPC64-NEXT: Offset: 0x24
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0x48 MACHO-PPC64-NEXT: Value: 0x48
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Section __la_symbol_ptr { MACHO-PPC64-NEXT: Section __la_symbol_ptr {
@ -247,10 +209,8 @@ MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x0 MACHO-PPC64-NEXT: Offset: 0x0
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 3 MACHO-PPC64-NEXT: Length: 3
MACHO-PPC64-NEXT: Extern: 1
MACHO-PPC64-NEXT: Type: (0) MACHO-PPC64-NEXT: Type: (0)
MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5)
MACHO-PPC64-NEXT: Scattered: 0
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: ] MACHO-PPC64-NEXT: ]
@ -262,82 +222,64 @@ MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x38 MACHO-ARM-NEXT: Offset: 0x38
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2)
MACHO-ARM-NEXT: Symbol: 0x40 MACHO-ARM-NEXT: Value: 0x40
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0x28 MACHO-ARM-NEXT: Value: 0x28
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x20 MACHO-ARM-NEXT: Offset: 0x20
MACHO-ARM-NEXT: PCRel: 1 MACHO-ARM-NEXT: PCRel: 1
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: 1
MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5) MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5)
MACHO-ARM-NEXT: Symbol: _g MACHO-ARM-NEXT: Symbol: _g
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x1C MACHO-ARM-NEXT: Offset: 0x1C
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 1 MACHO-ARM-NEXT: Length: 1
MACHO-ARM-NEXT: Extern: 1
MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8)
MACHO-ARM-NEXT: Symbol: _g MACHO-ARM-NEXT: Symbol: _g
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 1 MACHO-ARM-NEXT: Length: 1
MACHO-ARM-NEXT: Extern: 0
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0xFFFFFF MACHO-ARM-NEXT: Section: -
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x18 MACHO-ARM-NEXT: Offset: 0x18
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 0 MACHO-ARM-NEXT: Length: 0
MACHO-ARM-NEXT: Extern: 1
MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8)
MACHO-ARM-NEXT: Symbol: _g MACHO-ARM-NEXT: Symbol: _g
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 0 MACHO-ARM-NEXT: Length: 0
MACHO-ARM-NEXT: Extern: 0
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0xFFFFFF MACHO-ARM-NEXT: Section: -
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0xC MACHO-ARM-NEXT: Offset: 0xC
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2)
MACHO-ARM-NEXT: Symbol: 0x44 MACHO-ARM-NEXT: Value: 0x44
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0x4 MACHO-ARM-NEXT: Value: 0x4
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: ] MACHO-ARM-NEXT: ]

View File

@ -302,46 +302,36 @@ MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x24 MACHO-PPC-NEXT: Offset: 0x24
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11)
MACHO-PPC-NEXT: Symbol: 0x64 MACHO-PPC-NEXT: Value: 0x64
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x0 MACHO-PPC-NEXT: Offset: 0x0
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0xC MACHO-PPC-NEXT: Value: 0xC
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x1C MACHO-PPC-NEXT: Offset: 0x1C
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12)
MACHO-PPC-NEXT: Symbol: 0x64 MACHO-PPC-NEXT: Value: 0x64
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x58 MACHO-PPC-NEXT: Offset: 0x58
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0xC MACHO-PPC-NEXT: Value: 0xC
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x18 MACHO-PPC-NEXT: Offset: 0x18
MACHO-PPC-NEXT: PCRel: 1 MACHO-PPC-NEXT: PCRel: 1
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: 0
MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3) MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3)
MACHO-PPC-NEXT: Symbol: 0x2 MACHO-PPC-NEXT: Section: __picsymbolstub1 (2)
MACHO-PPC-NEXT: Scattered: 0
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: ] MACHO-PPC-NEXT: ]
MACHO-PPC-NEXT: Symbols [ MACHO-PPC-NEXT: Symbols [
@ -385,37 +375,29 @@ MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x14 MACHO-PPC-NEXT: Offset: 0x14
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11)
MACHO-PPC-NEXT: Symbol: 0x68 MACHO-PPC-NEXT: Value: 0x68
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x0 MACHO-PPC-NEXT: Offset: 0x0
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0x48 MACHO-PPC-NEXT: Value: 0x48
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0xC MACHO-PPC-NEXT: Offset: 0xC
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12)
MACHO-PPC-NEXT: Symbol: 0x68 MACHO-PPC-NEXT: Value: 0x68
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: Relocation { MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x20 MACHO-PPC-NEXT: Offset: 0x20
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: N/A
MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)
MACHO-PPC-NEXT: Symbol: 0x48 MACHO-PPC-NEXT: Value: 0x48
MACHO-PPC-NEXT: Scattered: 1
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: ] MACHO-PPC-NEXT: ]
MACHO-PPC-NEXT: Symbols [ MACHO-PPC-NEXT: Symbols [
@ -501,10 +483,8 @@ MACHO-PPC-NEXT: Relocation {
MACHO-PPC-NEXT: Offset: 0x0 MACHO-PPC-NEXT: Offset: 0x0
MACHO-PPC-NEXT: PCRel: 0 MACHO-PPC-NEXT: PCRel: 0
MACHO-PPC-NEXT: Length: 2 MACHO-PPC-NEXT: Length: 2
MACHO-PPC-NEXT: Extern: 1
MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0) MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0)
MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5)
MACHO-PPC-NEXT: Scattered: 0
MACHO-PPC-NEXT: } MACHO-PPC-NEXT: }
MACHO-PPC-NEXT: ] MACHO-PPC-NEXT: ]
MACHO-PPC-NEXT: Symbols [ MACHO-PPC-NEXT: Symbols [
@ -539,46 +519,36 @@ MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x24 MACHO-PPC64-NEXT: Offset: 0x24
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (14) MACHO-PPC64-NEXT: Type: (14)
MACHO-PPC64-NEXT: Symbol: 0x64 MACHO-PPC64-NEXT: Value: 0x64
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x0 MACHO-PPC64-NEXT: Offset: 0x0
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0xC MACHO-PPC64-NEXT: Value: 0xC
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x1C MACHO-PPC64-NEXT: Offset: 0x1C
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (12) MACHO-PPC64-NEXT: Type: (12)
MACHO-PPC64-NEXT: Symbol: 0x64 MACHO-PPC64-NEXT: Value: 0x64
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x58 MACHO-PPC64-NEXT: Offset: 0x58
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0xC MACHO-PPC64-NEXT: Value: 0xC
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x18 MACHO-PPC64-NEXT: Offset: 0x18
MACHO-PPC64-NEXT: PCRel: 1 MACHO-PPC64-NEXT: PCRel: 1
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: 0
MACHO-PPC64-NEXT: Type: (3) MACHO-PPC64-NEXT: Type: (3)
MACHO-PPC64-NEXT: Symbol: 0x2 MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2)
MACHO-PPC64-NEXT: Scattered: 0
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: ] MACHO-PPC64-NEXT: ]
MACHO-PPC64-NEXT: Symbols [ MACHO-PPC64-NEXT: Symbols [
@ -622,37 +592,29 @@ MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x14 MACHO-PPC64-NEXT: Offset: 0x14
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (14) MACHO-PPC64-NEXT: Type: (14)
MACHO-PPC64-NEXT: Symbol: 0x6C MACHO-PPC64-NEXT: Value: 0x6C
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x0 MACHO-PPC64-NEXT: Offset: 0x0
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0x48 MACHO-PPC64-NEXT: Value: 0x48
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0xC MACHO-PPC64-NEXT: Offset: 0xC
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (12) MACHO-PPC64-NEXT: Type: (12)
MACHO-PPC64-NEXT: Symbol: 0x6C MACHO-PPC64-NEXT: Value: 0x6C
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: Relocation { MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x24 MACHO-PPC64-NEXT: Offset: 0x24
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 2 MACHO-PPC64-NEXT: Length: 2
MACHO-PPC64-NEXT: Extern: N/A
MACHO-PPC64-NEXT: Type: (1) MACHO-PPC64-NEXT: Type: (1)
MACHO-PPC64-NEXT: Symbol: 0x48 MACHO-PPC64-NEXT: Value: 0x48
MACHO-PPC64-NEXT: Scattered: 1
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: ] MACHO-PPC64-NEXT: ]
MACHO-PPC64-NEXT: Symbols [ MACHO-PPC64-NEXT: Symbols [
@ -738,10 +700,8 @@ MACHO-PPC64-NEXT: Relocation {
MACHO-PPC64-NEXT: Offset: 0x0 MACHO-PPC64-NEXT: Offset: 0x0
MACHO-PPC64-NEXT: PCRel: 0 MACHO-PPC64-NEXT: PCRel: 0
MACHO-PPC64-NEXT: Length: 3 MACHO-PPC64-NEXT: Length: 3
MACHO-PPC64-NEXT: Extern: 1
MACHO-PPC64-NEXT: Type: (0) MACHO-PPC64-NEXT: Type: (0)
MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5)
MACHO-PPC64-NEXT: Scattered: 0
MACHO-PPC64-NEXT: } MACHO-PPC64-NEXT: }
MACHO-PPC64-NEXT: ] MACHO-PPC64-NEXT: ]
MACHO-PPC64-NEXT: Symbols [ MACHO-PPC64-NEXT: Symbols [
@ -775,82 +735,64 @@ MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x38 MACHO-ARM-NEXT: Offset: 0x38
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2)
MACHO-ARM-NEXT: Symbol: 0x40 MACHO-ARM-NEXT: Value: 0x40
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0x28 MACHO-ARM-NEXT: Value: 0x28
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x20 MACHO-ARM-NEXT: Offset: 0x20
MACHO-ARM-NEXT: PCRel: 1 MACHO-ARM-NEXT: PCRel: 1
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: 1
MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5) MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5)
MACHO-ARM-NEXT: Symbol: _g MACHO-ARM-NEXT: Symbol: _g
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x1C MACHO-ARM-NEXT: Offset: 0x1C
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 1 MACHO-ARM-NEXT: Length: 1
MACHO-ARM-NEXT: Extern: 1
MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8)
MACHO-ARM-NEXT: Symbol: _g MACHO-ARM-NEXT: Symbol: _g
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 1 MACHO-ARM-NEXT: Length: 1
MACHO-ARM-NEXT: Extern: 0
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0xFFFFFF MACHO-ARM-NEXT: Section: -
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x18 MACHO-ARM-NEXT: Offset: 0x18
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 0 MACHO-ARM-NEXT: Length: 0
MACHO-ARM-NEXT: Extern: 1
MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8)
MACHO-ARM-NEXT: Symbol: _g MACHO-ARM-NEXT: Symbol: _g
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 0 MACHO-ARM-NEXT: Length: 0
MACHO-ARM-NEXT: Extern: 0
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0xFFFFFF MACHO-ARM-NEXT: Section: -
MACHO-ARM-NEXT: Scattered: 0
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0xC MACHO-ARM-NEXT: Offset: 0xC
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2)
MACHO-ARM-NEXT: Symbol: 0x44 MACHO-ARM-NEXT: Value: 0x44
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: Relocation { MACHO-ARM-NEXT: Relocation {
MACHO-ARM-NEXT: Offset: 0x0 MACHO-ARM-NEXT: Offset: 0x0
MACHO-ARM-NEXT: PCRel: 0 MACHO-ARM-NEXT: PCRel: 0
MACHO-ARM-NEXT: Length: 2 MACHO-ARM-NEXT: Length: 2
MACHO-ARM-NEXT: Extern: N/A
MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT: Symbol: 0x4 MACHO-ARM-NEXT: Value: 0x4
MACHO-ARM-NEXT: Scattered: 1
MACHO-ARM-NEXT: } MACHO-ARM-NEXT: }
MACHO-ARM-NEXT: ] MACHO-ARM-NEXT: ]
MACHO-ARM-NEXT: Symbols [ MACHO-ARM-NEXT: Symbols [

View File

@ -469,35 +469,47 @@ void MachODumper::printRelocation(const MachOObjectFile *Obj,
DataRefImpl DR = Reloc.getRawDataRefImpl(); DataRefImpl DR = Reloc.getRawDataRefImpl();
MachO::any_relocation_info RE = Obj->getRelocation(DR); MachO::any_relocation_info RE = Obj->getRelocation(DR);
bool IsScattered = Obj->isRelocationScattered(RE); bool IsScattered = Obj->isRelocationScattered(RE);
SmallString<32> SymbolNameOrOffset("0x"); bool IsExtern = !IsScattered && Obj->getPlainRelocationExternal(RE);
if (IsScattered) {
// Scattered relocations don't really have an associated symbol StringRef TargetName;
// for some reason, even if one exists in the symtab at the correct address. if (IsExtern) {
SymbolNameOrOffset += utohexstr(Obj->getScatteredRelocationValue(RE));
} else {
symbol_iterator Symbol = Reloc.getSymbol(); symbol_iterator Symbol = Reloc.getSymbol();
if (Symbol != Obj->symbol_end()) { if (Symbol != Obj->symbol_end()) {
StringRef SymbolName; if (error(Symbol->getName(TargetName)))
if (error(Symbol->getName(SymbolName)))
return; return;
SymbolNameOrOffset = SymbolName; }
} else } else if (!IsScattered) {
SymbolNameOrOffset += utohexstr(Obj->getPlainRelocationSymbolNum(RE)); section_iterator SecI = Reloc.getSection();
if (SecI != Obj->section_end()) {
if (error(SecI->getName(TargetName)))
return;
}
} }
if (TargetName.empty())
TargetName = "-";
if (opts::ExpandRelocs) { if (opts::ExpandRelocs) {
DictScope Group(W, "Relocation"); DictScope Group(W, "Relocation");
W.printHex("Offset", Offset); W.printHex("Offset", Offset);
W.printNumber("PCRel", Obj->getAnyRelocationPCRel(RE)); W.printNumber("PCRel", Obj->getAnyRelocationPCRel(RE));
W.printNumber("Length", Obj->getAnyRelocationLength(RE)); W.printNumber("Length", Obj->getAnyRelocationLength(RE));
if (IsScattered)
W.printString("Extern", StringRef("N/A"));
else
W.printNumber("Extern", Obj->getPlainRelocationExternal(RE));
W.printNumber("Type", RelocName, Obj->getAnyRelocationType(RE)); W.printNumber("Type", RelocName, Obj->getAnyRelocationType(RE));
W.printString("Symbol", SymbolNameOrOffset); if (IsScattered) {
W.printNumber("Scattered", IsScattered); W.printHex("Value", Obj->getScatteredRelocationValue(RE));
} else {
const char *Kind = IsExtern ? "Symbol" : "Section";
W.printNumber(Kind, TargetName, Obj->getPlainRelocationSymbolNum(RE));
}
} else { } else {
SmallString<32> SymbolNameOrOffset("0x");
if (IsScattered) {
// Scattered relocations don't really have an associated symbol for some
// reason, even if one exists in the symtab at the correct address.
SymbolNameOrOffset += utohexstr(Obj->getScatteredRelocationValue(RE));
} else {
SymbolNameOrOffset = TargetName;
}
raw_ostream& OS = W.startLine(); raw_ostream& OS = W.startLine();
OS << W.hex(Offset) OS << W.hex(Offset)
<< " " << Obj->getAnyRelocationPCRel(RE) << " " << Obj->getAnyRelocationPCRel(RE)