| # 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 referring 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 |