blob: 7209995e01dc8d147b2c29ae2f95250964c5ab57 [file] [log] [blame]
Sam Clegg064e9902020-05-12 00:39:041# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
2# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t2.o %S/Inputs/sig_mismatch.s
3# RUN: wasm-ld --relocatable %t.o %t2.o -o %t.wasm
4# RUN: obj2yaml %t.wasm | FileCheck %s
5
6# Regression test for handling of signature mismatches (variant function
7# symbols) and relocatable output. This issue only occurred when the undefined
8# function was seen first and the defined function was referenced within the
9# the defining file (see %S/Inputs/sig_mismatch.s).
10
11.globl _start
12_start:
13 .functype _start () -> ()
14 i32.const 1
15 i64.const 2
16 i32.const 3
17 call foo
18 end_function
19
20.functype foo (i32, i64, i32) -> (i32)
21
22# CHECK: - Type: CUSTOM
23# CHECK-NEXT: Name: linking
24# CHECK-NEXT: Version: 2
25# CHECK-NEXT: SymbolTable:
26# CHECK-NEXT: - Index: 0
27# CHECK-NEXT: Kind: FUNCTION
28# CHECK-NEXT: Name: _start
29# CHECK-NEXT: Flags: [ ]
30# CHECK-NEXT: Function: 1
31# CHECK-NEXT: - Index: 1
32# CHECK-NEXT: Kind: FUNCTION
33# CHECK-NEXT: Name: foo
34# CHECK-NEXT: Flags: [ ]
35# CHECK-NEXT: Function: 2
36# CHECK-NEXT: - Index: 2
37# CHECK-NEXT: Kind: FUNCTION
38# CHECK-NEXT: Name: call_foo
39# CHECK-NEXT: Flags: [ ]
40# CHECK-NEXT: Function: 3
41# CHECK-NEXT: - Index: 3
42# CHECK-NEXT: Kind: FUNCTION
43# CHECK-NEXT: Name: 'signature_mismatch:foo'
44# CHECK-NEXT: Flags: [ BINDING_LOCAL ]
45# CHECK-NEXT: Function: 0
46# CHECK-NEXT: - Type: CUSTOM
47# CHECK-NEXT: Name: name
48# CHECK-NEXT: FunctionNames:
49# CHECK-NEXT: - Index: 0
50# CHECK-NEXT: Name: 'signature_mismatch:foo'
51# CHECK-NEXT: - Index: 1
52# CHECK-NEXT: Name: _start
53# CHECK-NEXT: - Index: 2
54# CHECK-NEXT: Name: foo
55# CHECK-NEXT: - Index: 3
56# CHECK-NEXT: Name: call_foo
57# CHECK-NEXT:...