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 {
if (isRelocationScattered(RE) || getPlainRelocationExternal(RE))
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;
DRI.d.a = SecNum;
DRI.d.a = SecNum - 1;
return SectionRef(DRI, this);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -469,35 +469,47 @@ void MachODumper::printRelocation(const MachOObjectFile *Obj,
DataRefImpl DR = Reloc.getRawDataRefImpl();
MachO::any_relocation_info RE = Obj->getRelocation(DR);
bool IsScattered = Obj->isRelocationScattered(RE);
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 {
bool IsExtern = !IsScattered && Obj->getPlainRelocationExternal(RE);
StringRef TargetName;
if (IsExtern) {
symbol_iterator Symbol = Reloc.getSymbol();
if (Symbol != Obj->symbol_end()) {
StringRef SymbolName;
if (error(Symbol->getName(SymbolName)))
if (error(Symbol->getName(TargetName)))
return;
SymbolNameOrOffset = SymbolName;
} else
SymbolNameOrOffset += utohexstr(Obj->getPlainRelocationSymbolNum(RE));
}
} else if (!IsScattered) {
section_iterator SecI = Reloc.getSection();
if (SecI != Obj->section_end()) {
if (error(SecI->getName(TargetName)))
return;
}
}
if (TargetName.empty())
TargetName = "-";
if (opts::ExpandRelocs) {
DictScope Group(W, "Relocation");
W.printHex("Offset", Offset);
W.printNumber("PCRel", Obj->getAnyRelocationPCRel(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.printString("Symbol", SymbolNameOrOffset);
W.printNumber("Scattered", IsScattered);
if (IsScattered) {
W.printHex("Value", Obj->getScatteredRelocationValue(RE));
} else {
const char *Kind = IsExtern ? "Symbol" : "Section";
W.printNumber(Kind, TargetName, Obj->getPlainRelocationSymbolNum(RE));
}
} 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();
OS << W.hex(Offset)
<< " " << Obj->getAnyRelocationPCRel(RE)