103 lines · plain
1# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o2# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %S/Inputs/undefined-globals.s -o %t_globals.o3# RUN: wasm-ld --allow-undefined -o %t1.wasm %t.o %t_globals.o4 5.functype unused_undef_function (i64) -> (i64)6.functype used_undef_function () -> (i32)7.functype use_undef_global () -> (i64)8 9foo:10 .functype foo (i64) -> (i64)11 local.get 012 call unused_undef_function13 end_function14 15.globl _start16 17_start:18 .functype _start () -> ()19 call used_undef_function20 drop21 call use_undef_global22 drop23 end_function24 25# RUN: obj2yaml %t1.wasm | FileCheck %s26 27# CHECK: - Type: IMPORT28# CHECK-NEXT: Imports:29# CHECK-NEXT: - Module: env30# CHECK-NEXT: Field: used_undef_function31# CHECK-NEXT: Kind: FUNCTION32# CHECK-NEXT: SigIndex: 033# CHECK-NEXT: - Module: env34# CHECK-NEXT: Field: used_undef_global35# CHECK-NEXT: Kind: GLOBAL36# CHECK-NEXT: GlobalType: I6437# CHECK-NEXT: GlobalMutable: false38# CHECK-NEXT: - Type:39# CHECK: - Type: CUSTOM40# CHECK-NEXT: Name: name41# CHECK-NEXT: FunctionNames:42# CHECK-NEXT: - Index: 043# CHECK-NEXT: Name: used_undef_function44# CHECK-NEXT: - Index: 145# CHECK-NEXT: Name: _start46# CHECK-NEXT: - Index: 247# CHECK-NEXT: Name: use_undef_global48# CHECK-NEXT: GlobalNames:49# CHECK-NEXT: - Index: 050# CHECK-NEXT: Name: used_undef_global51# CHECK-NEXT: - Index: 152# CHECK-NEXT: Name: __stack_pointer53# CHECK-NEXT: ...54 55# RUN: wasm-ld --no-gc-sections --allow-undefined \56# RUN: -o %t1.no-gc.wasm %t.o %t_globals.o57# RUN: obj2yaml %t1.no-gc.wasm | FileCheck %s -check-prefix=NO-GC58 59# NO-GC: - Type: IMPORT60# NO-GC-NEXT: Imports:61# NO-GC-NEXT: - Module: env62# NO-GC-NEXT: Field: unused_undef_function63# NO-GC-NEXT: Kind: FUNCTION64# NO-GC-NEXT: SigIndex: 065# NO-GC-NEXT: - Module: env66# NO-GC-NEXT: Field: used_undef_function67# NO-GC-NEXT: Kind: FUNCTION68# NO-GC-NEXT: SigIndex: 169# NO-GC-NEXT: - Module: env70# NO-GC-NEXT: Field: unused_undef_global71# NO-GC-NEXT: Kind: GLOBAL72# NO-GC-NEXT: GlobalType: I6473# NO-GC-NEXT: GlobalMutable: false74# NO-GC-NEXT: - Module: env75# NO-GC-NEXT: Field: used_undef_global76# NO-GC-NEXT: Kind: GLOBAL77# NO-GC-NEXT: GlobalType: I6478# NO-GC-NEXT: GlobalMutable: false79# NO-GC-NEXT: - Type:80# NO-GC: - Type: CUSTOM81# NO-GC-NEXT: Name: name82# NO-GC-NEXT: FunctionNames:83# NO-GC-NEXT: - Index: 084# NO-GC-NEXT: Name: unused_undef_function85# NO-GC-NEXT: - Index: 186# NO-GC-NEXT: Name: used_undef_function87# NO-GC-NEXT: - Index: 288# NO-GC-NEXT: Name: __wasm_call_ctors89# NO-GC-NEXT: - Index: 390# NO-GC-NEXT: Name: foo91# NO-GC-NEXT: - Index: 492# NO-GC-NEXT: Name: _start93# NO-GC-NEXT: - Index: 594# NO-GC-NEXT: Name: use_undef_global95# NO-GC-NEXT: GlobalNames:96# NO-GC-NEXT: - Index: 097# NO-GC-NEXT: Name: unused_undef_global98# NO-GC-NEXT: - Index: 199# NO-GC-NEXT: Name: used_undef_global100# NO-GC-NEXT: - Index: 2101# NO-GC-NEXT: Name: __stack_pointer102# NO-GC-NEXT: ...103