| # Test if we are handling RELA relocations for ARM correctly using llvm-dwarfdump. |
| # |
| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-dwarfdump -i %t | FileCheck %s |
| |
| # CHECK: DW_TAG_compile_unit |
| # CHECK-NEXT: DW_AT_name {{.*}}("correct") |
| # CHECK-NEXT: DW_AT_type ([[TYPEDIE:0x[0-9A-Fa-f]+]] "correct") |
| # CHECK: [[TYPEDIE]]: DW_TAG_base_type |
| # CHECK-NEXT: DW_AT_name {{.*}}("correct") |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_ARM |
| Flags: [ EF_ARM_EABI_VER5 ] |
| Sections: |
| # A rudimentary v5 compile unit with an AT_name and an AT_type referencing |
| # a rudimentary DW_TAG_base_type DIE with an AT_name attribute. |
| - Name: .debug_info |
| Type: SHT_PROGBITS |
| Content: 17000000050001040000000001A000000000000000020000000000 |
| - Name: .debug_abbrev |
| Type: SHT_PROGBITS |
| Content: 011101030E49130000022400030E0000 |
| - Name: .debug_str |
| Type: SHT_PROGBITS |
| - Name: .rela.debug_info |
| Type: SHT_RELA |
| Link: .symtab |
| AddressAlign: 0x4 |
| Offset: 0x929 |
| Info: .debug_info |
| Relocations: |
| - Offset: 0x8 |
| Symbol: .debug_abbrev |
| Type: R_ARM_ABS32 |
| # The compile unit name is found via a R_ARM_ABS32 relocation. |
| - Offset: 0xD |
| Symbol: .debug_str |
| Type: R_ARM_ABS32 |
| Addend: 6 |
| # The DW_TAG_base_type is found via a R_ARM_REL32 relocation. |
| # This is completely artificial and unlikely to be ever generated |
| # by a compiler or other tool. We make sure that the relocation is |
| # resolved by (Symbol - Offset + Addend). |
| - Offset: 0x11 |
| Symbol: .debug_info |
| Type: R_ARM_REL32 |
| Addend: 0x26 |
| - Offset: 0x16 |
| Symbol: .debug_str |
| Type: R_ARM_ABS32 |
| Addend: 6 |
| - Type: SectionHeaderTable |
| Sections: |
| - Name: .symtab |
| - Name: .strtab |
| - Name: .shstrtab |
| - Name: .debug_info |
| - Name: .debug_abbrev |
| - Name: .debug_str |
| - Name: .rela.debug_info |
| Symbols: |
| - Name: test.cpp |
| Type: STT_FILE |
| Index: SHN_ABS |
| - Name: .debug_info |
| Type: STT_SECTION |
| Section: .debug_info |
| - Name: .debug_abbrev |
| Type: STT_SECTION |
| Section: .debug_abbrev |
| - Name: .debug_str |
| Type: STT_SECTION |
| Section: .debug_str |
| - Name: .debug_info_cudie |
| Type: STT_OBJECT |
| Section: .debug_info |
| Value: 0xC |
| DWARF: |
| debug_str: |
| - 'wrong' |
| - 'correct' |
| ... |