# RUN: llvm-mc -mattr -relax -triple riscv64 -filetype obj %s -o - | llvm-readobj -d -r - | FileCheck %s .global function # CHECK: .rela.text { # Unrelaxed reference, this would normally fail, but the subsequent scoped # relaxation forces relaxation on the file. .dword function - . # CHECK: 0x0 R_RISCV_ADD64 function 0x0 # CHECK-NEXT: 0x0 R_RISCV_SUB64 0x0 # Relaxed reference, this will resolve to a pair of `RISCV_ADD64` and # `RISCV_SUB64` relocation. .option push .option relax .dword function - . .option pop # CHECK: 0x8 R_RISCV_ADD64 function 0x0 # CHECK-NEXT: 0x8 R_RISCV_SUB64 0x0 # Unrelaxed reference, this will resolve to a pair of `RISCV_ADD64` and # `RISCV_SUB64` relocation due to relaxation being sticky to the file. .option push .option norelax .dword function - . .option pop # CHECK: 0x10 R_RISCV_ADD64 function 0x0 # CHECK-NEXT: 0x10 R_RISCV_SUB64 0x0 # CHECK: }