/// NOTE: assign section addresses explicitly to make the symbol difference /// calculation below less fragile. // RUN: %clang %cflags64 -Wl,--image-base=0,--section-start=.text=0x1000,--section-start=.data=0x2000 -o %t %s // RUN: llvm-bolt -o %t.bolt %t // RUN: llvm-readelf -x .data %t.bolt | FileCheck %s .text .globl _start .p2align 1 _start: .LBB0_0: auipc a1, %pcrel_hi(.LJTI0_0) addi a1, a1, %pcrel_lo(.LBB0_0) lw a0, (a1) add a0, a0, a1 jr a0 .LBB0_1: ret .size _start, .-_start .data /// .LJTI0_0 = 0x2000 /// .LBB0_1 = 0x40000e // CHECK: Hex dump of section '.data': // CHECK-NEXT: 0x00002000 0ee03f00 .LJTI0_0: .word .LBB0_1 - .LJTI0_0