# RUN: yaml2obj -DELFCLASS=ELFCLASS32 -o %t.32.o %s # RUN: llvm-jitlink -noexec -check %s %t.32.o # RUN: yaml2obj -DELFCLASS=ELFCLASS64 -o %t.64.o %s # RUN: llvm-jitlink -noexec -check %s %t.64.o ### Compiled from the following code with -mattr=+relax to force relocations for ### address_range and DW_CFA_advance_loc (both needed for .balign). ## .text ## .globl main ## .p2align 1 ## .type main,@function ## main: ## .cfi_startproc ## .balign 8 ## addi sp, sp, -16 ## cfa_advance_loc: ## .cfi_def_cfa_offset 16 ## nop ## main_end: ## .size main, main_end-main ## .cfi_endproc --- !ELF FileHeader: Class: [[ELFCLASS]] Data: ELFDATA2LSB Type: ET_REL Machine: EM_RISCV SectionHeaderStringTable: .strtab Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x8 Content: 13000000130101FF13000000 - Name: .eh_frame Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] AddressAlign: 0x8 Content: 1000000000000000017A5200017801011B0C02001000000018000000000000000000000000400E10 - Name: .rela.text Type: SHT_RELA Flags: [ SHF_INFO_LINK ] Link: .symtab AddressAlign: 0x8 Info: .text Relocations: - Type: R_RISCV_ALIGN Addend: 4 - Name: .rela.eh_frame Type: SHT_RELA Flags: [ SHF_INFO_LINK ] Link: .symtab AddressAlign: 0x8 Info: .eh_frame Relocations: - Offset: 0x1C Symbol: main Type: R_RISCV_32_PCREL - Offset: 0x20 Symbol: main_end Type: R_RISCV_ADD32 - Offset: 0x20 Symbol: main Type: R_RISCV_SUB32 - Offset: 0x25 Symbol: cfa_advance_loc Type: R_RISCV_SET6 - Offset: 0x25 Symbol: main Type: R_RISCV_SUB6 - Type: SectionHeaderTable Sections: - Name: .strtab - Name: .text - Name: .rela.text - Name: .eh_frame - Name: .rela.eh_frame - Name: .symtab Symbols: - Name: cfa_advance_loc Section: .text Value: 0x8 - Name: main_end Section: .text Value: 0xC - Name: main Type: STT_FUNC Section: .text Binding: STB_GLOBAL Size: 0xC - Name: eh_frame Type: STT_SECTION Binding: STB_GLOBAL Section: .eh_frame Size: 0x28 ... ## CIE_pointer # jitlink-check: *{4}(eh_frame + 0x1c) = main - (eh_frame + 0x1c) ## address_range # jitlink-check: *{4}(eh_frame + 0x20) = main_end - main ## DW_CFA_advance_loc # jitlink-check: (*{1}(eh_frame + 0x25)) & 0x3f = cfa_advance_loc - main