1; RUN: llc -O0 -filetype=obj %s -o - | llvm-readobj -r --expand-relocs - | FileCheck %s 2 3; CHECK: Format: WASM 4; CHECK: Relocations [ 5; CHECK-NEXT: Section (3) DATA { 6; CHECK-NEXT: Relocation { 7; CHECK-NEXT: Type: R_WASM_MEMORY_ADDR_LOCREL_I32 (23) 8; CHECK-NEXT: Offset: 0x6 9; CHECK-NEXT: Symbol: foo 10; CHECK-NEXT: Addend: 0 11; CHECK-NEXT: } 12; CHECK-NEXT: Relocation { 13; CHECK-NEXT: Type: R_WASM_MEMORY_ADDR_LOCREL_I32 (23) 14; CHECK-NEXT: Offset: 0xA 15; CHECK-NEXT: Symbol: fizz 16; CHECK-NEXT: Addend: 0 17; CHECK-NEXT: } 18; CHECK-NEXT: Relocation { 19; CHECK-NEXT: Type: R_WASM_MEMORY_ADDR_LOCREL_I32 (23) 20; CHECK-NEXT: Offset: 0x17 21; CHECK-NEXT: Symbol: foo 22; CHECK-NEXT: Addend: 4 23; CHECK-NEXT: } 24; CHECK-NEXT: } 25; CHECK-NEXT: ] 26 27target triple = "wasm32-unknown-unknown" 28 29 30; @foo - @bar 31@foo = external global i32, align 4 32@bar = constant i32 sub ( 33 i32 ptrtoint (ptr @foo to i32), 34 i32 ptrtoint (ptr @bar to i32) 35), section ".sec1" 36 37 38; @foo - @addend + 4 39@fizz = constant i32 42, align 4, section ".sec2" 40@addend = constant i32 sub ( 41 i32 ptrtoint (ptr @foo to i32), 42 i32 ptrtoint (ptr @fizz to i32) 43), section ".sec2" 44 45@x_sec = constant i32 sub ( 46 i32 ptrtoint (ptr @fizz to i32), 47 i32 ptrtoint (ptr @x_sec to i32) 48), section ".sec1" 49