# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t2.o %S/Inputs/sig_mismatch.s # RUN: wasm-ld --relocatable %t.o %t2.o -o %t.wasm # RUN: obj2yaml %t.wasm | FileCheck %s # Regression test for handling of signature mismatches (variant function # symbols) and relocatable output. This issue only occurred when the undefined # function was seen first and the defined function was referenced within the # the defining file (see %S/Inputs/sig_mismatch.s). .globl _start _start: .functype _start () -> () i32.const 1 i64.const 2 i32.const 3 call foo end_function .functype foo (i32, i64, i32) -> (i32) # CHECK: - Type: CUSTOM # CHECK-NEXT: Name: linking # CHECK-NEXT: Version: 2 # CHECK-NEXT: SymbolTable: # CHECK-NEXT: - Index: 0 # CHECK-NEXT: Kind: FUNCTION # CHECK-NEXT: Name: _start # CHECK-NEXT: Flags: [ ] # CHECK-NEXT: Function: 1 # CHECK-NEXT: - Index: 1 # CHECK-NEXT: Kind: FUNCTION # CHECK-NEXT: Name: foo # CHECK-NEXT: Flags: [ ] # CHECK-NEXT: Function: 2 # CHECK-NEXT: - Index: 2 # CHECK-NEXT: Kind: FUNCTION # CHECK-NEXT: Name: call_foo # CHECK-NEXT: Flags: [ ] # CHECK-NEXT: Function: 3 # CHECK-NEXT: - Index: 3 # CHECK-NEXT: Kind: FUNCTION # CHECK-NEXT: Name: 'signature_mismatch:foo' # CHECK-NEXT: Flags: [ BINDING_LOCAL ] # CHECK-NEXT: Function: 0 # CHECK-NEXT: - Type: CUSTOM # CHECK-NEXT: Name: name # CHECK-NEXT: FunctionNames: # CHECK-NEXT: - Index: 0 # CHECK-NEXT: Name: 'signature_mismatch:foo' # CHECK-NEXT: - Index: 1 # CHECK-NEXT: Name: _start # CHECK-NEXT: - Index: 2 # CHECK-NEXT: Name: foo # CHECK-NEXT: - Index: 3 # CHECK-NEXT: Name: call_foo # CHECK-NEXT:...