blob: ccd0c4ec5bb6bad75021733dfddf3cb08cbbffb5 [file] [edit]
# Verify that we can handle R_WASM_FUNCTION_OFFSET relocations against weak
# symbols that were defined in shared libraries.
# Test that the .debug_info is generated without error and contains the
# tombstone value.
#
# Based on debug-undefined-fs.s
#
# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t_ret32.o %p/Inputs/ret32.s
# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
# RUN: wasm-ld -shared -o %t_lib.so %t_ret32.o
# RUN: wasm-ld -pie %t_lib.so %t.o -o %t.wasm
# RUN: obj2yaml %t.wasm | FileCheck %s
# ret32 is weakly defined here, but strongly defined in the shared library.
# So we expect the tombstone to be written for relocations refering to it in
# the debug section.
.globl ret32
.weak ret32
ret32:
.functype ret32 (f32) -> (i32)
i32.const 0
end_function
.globl _start
_start:
.functype _start () -> ()
f32.const 0.0
call ret32
drop
end_function
.section .debug_info,"",@
.int32 ret32
# CHECK: Name: .debug_info
# CHECK-NEXT: Payload: FFFFFFFF