brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 47775c8 Raw
110 lines · plain
1# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s2# RUN: wasm-ld --entry=callWeakFuncs --print-gc-sections %t.o \3# RUN:     -o %t.wasm 2>&1 | FileCheck -check-prefix=CHECK-GC %s4# RUN: obj2yaml %t.wasm | FileCheck %s5 6 7# Check that calling an undefined weak function generates an appropriate stub8# that will fail at runtime with "unreachable".9 10.functype weakFunc1 () -> ()11.functype weakFunc2 () -> ()12.functype weakFunc3 (i32) -> ()13.functype weakFunc4 () -> ()14 15.globl  callWeakFuncs16 17callWeakFuncs:18  .functype callWeakFuncs () -> (i32)19  call  weakFunc120  call  weakFunc221  i32.const 222  call  weakFunc323  i32.const weakFunc124  i32.const weakFunc425  i32.add26  end_function27 28.weak weakFunc129.weak weakFunc230.weak weakFunc331.weak weakFunc432 33# CHECK-GC: removing unused section {{.*}}:(weakFunc4)34 35# CHECK:      --- !WASM36# CHECK-NEXT: FileHeader:37# CHECK-NEXT:   Version:         0x138# CHECK-NEXT: Sections:39# CHECK-NEXT:   - Type:            TYPE40# CHECK-NEXT:     Signatures:41# CHECK-NEXT:       - Index:           042# CHECK-NEXT:         ParamTypes:43# CHECK-NEXT:         ReturnTypes:     []44# CHECK-NEXT:       - Index:           145# CHECK-NEXT:         ParamTypes:46# CHECK-NEXT:           - I3247# CHECK-NEXT:         ReturnTypes:     []48# CHECK-NEXT:       - Index:           249# CHECK-NEXT:         ParamTypes:50# CHECK-NEXT:         ReturnTypes:51# CHECK-NEXT:           - I3252# CHECK-NEXT:   - Type:            FUNCTION53# CHECK-NEXT:     FunctionTypes:   [ 0, 0, 1, 2 ]54# CHECK-NEXT:   - Type:            TABLE55# CHECK-NEXT:     Tables:56# CHECK-NEXT:       - Index:           057# CHECK-NEXT:         ElemType:        FUNCREF58# CHECK-NEXT:         Limits:59# CHECK-NEXT:           Flags:           [ HAS_MAX ]60# CHECK-NEXT:           Minimum:         0x161# CHECK-NEXT:           Maximum:         0x162# CHECK-NEXT:   - Type:            MEMORY63# CHECK-NEXT:     Memories:64# CHECK-NEXT:       - Minimum:         0x165# CHECK-NEXT:   - Type:            GLOBAL66# CHECK-NEXT:     Globals:67# CHECK-NEXT:       - Index:           068# CHECK-NEXT:         Type:            I3269# CHECK-NEXT:         Mutable:         true70# CHECK-NEXT:         InitExpr:71# CHECK-NEXT:           Opcode:          I32_CONST72# CHECK-NEXT:           Value:           6553673# CHECK-NEXT:   - Type:            EXPORT74# CHECK-NEXT:     Exports:75# CHECK-NEXT:       - Name:            memory76# CHECK-NEXT:         Kind:            MEMORY77# CHECK-NEXT:         Index:           078# CHECK-NEXT:       - Name:            callWeakFuncs79# CHECK-NEXT:         Kind:            FUNCTION80# CHECK-NEXT:         Index:           381# CHECK-NEXT:   - Type:            CODE82# CHECK-NEXT:     Functions:83# CHECK-NEXT:       - Index:           084# CHECK-NEXT:         Locals:85# CHECK-NEXT:         Body:            000B86# CHECK-NEXT:       - Index:           187# CHECK-NEXT:         Locals:88# CHECK-NEXT:         Body:            000B89# CHECK-NEXT:       - Index:           290# CHECK-NEXT:         Locals:91# CHECK-NEXT:         Body:            000B92# CHECK-NEXT:       - Index:           393# CHECK-NEXT:         Locals:94# CHECK-NEXT:         Body:            10808080800010818080800041021082808080004180808080004180808080006A0B95# CHECK-NEXT:   - Type:            CUSTOM96# CHECK-NEXT:     Name:            name97# CHECK-NEXT:     FunctionNames:98# CHECK-NEXT:       - Index:           099# CHECK-NEXT:         Name:            'undefined_weak:weakFunc1'100# CHECK-NEXT:       - Index:           1101# CHECK-NEXT:         Name:            'undefined_weak:weakFunc2'102# CHECK-NEXT:       - Index:           2103# CHECK-NEXT:         Name:            'undefined_weak:weakFunc3'104# CHECK-NEXT:       - Index:           3105# CHECK-NEXT:         Name:            callWeakFuncs106# CHECK-NEXT:     GlobalNames:107# CHECK-NEXT:       - Index:           0108# CHECK-NEXT:         Name:            __stack_pointer109# CHECK-NEXT: ...110