| # 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 | |
| ... |