# RUN: yaml2obj %s -o %t
# RUN: lldb-test object-file -contents %t | FileCheck %s
## Test that R_ARM_ABS32 relocations are resolved in .debug_info sections on aarch32.
## REL-type relocations store implicit addend as signed values inline.
## We relocate the symbol foo with 4 different addends and bar once in the .debug_info section.
## Results that exceed the 32-bit range or overflow are logged and ignored.
# CHECK: Name: .debug_info
# CHECK: Data: (
#
# Addends: Zero Positive Negative Overflow Out-of-range
# 00000000 04030201 D6FFFFFF D5FFFFFF FFFFFF7F
# CHECK-NEXT: 0000: 2A000000 2E030201 00000000 D5FFFFFF FFFFFF7F
# CHECK-NEXT: )
--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_ARM
Flags: [ EF_ARM_EABI_VER5 ]
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- Name: .debug_info
Type: SHT_PROGBITS
Content: 0000000004030201D6FFFFFFD5FFFFFFFFFFFF7F
- Name: .rel.debug_info
Type: SHT_REL
Info: .debug_info
Relocations:
- Offset: 0x0
Symbol: foo
Type: R_ARM_ABS32
- Offset: 0x4
Symbol: foo
Type: R_ARM_ABS32
- Offset: 0x8
Symbol: foo
Type: R_ARM_ABS32
- Offset: 0xC
Symbol: foo
Type: R_ARM_ABS32
- Offset: 0x10
Symbol: bar
Type: R_ARM_ABS32
Symbols:
- Name: .debug_info
Type: STT_SECTION
Section: .debug_info
- Name: foo
Type: STT_FUNC
Section: .debug_info
Value: 0x0000002A
- Name: bar
Type: STT_FUNC
Section: .debug_info
Value: 0xFF000000
...