brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.3 KiB · 31cba9f Raw
153 lines · plain
1# RUN: not llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.a1.o %s 2>&1 | FileCheck %s --check-prefix=MVP2# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -mattr=+reference-types -o %t.a1.rt.o %s3# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/call-indirect.s -o %t.a2.o4# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -mattr=+reference-types %p/Inputs/call-indirect.s -o %t.a2.rt.o5# RUN: not wasm-ld --allow-undefined --export-dynamic --no-entry -o %t.wasm %t.a1.rt.o %t.a2.o 2>&1 | FileCheck %s --check-prefix=RT-MVP6# RUN: wasm-ld --allow-undefined --export-dynamic --no-entry -o- %t.a1.rt.o %t.a2.rt.o | obj2yaml | FileCheck %s7 8  .globl  table_a9  .tabletype table_a, funcref10 11  .globl  table_b12table_b:13  .tabletype table_b, funcref14 15  .globl  table_c16table_c:17  .tabletype table_c, externref18 19  .globl  call_indirect_explicit_tables20call_indirect_explicit_tables:21  .functype call_indirect_explicit_tables () -> ()22  i32.const 023  call_indirect table_a, () -> ()24# MVP: error: Expected (, instead got: table_a25  i32.const 026  call_indirect table_b, () -> ()27  end_function28 29# RT-MVP: wasm-ld: error: object file not built with 'reference-types' or 'call-indirect-overlong' feature conflicts with import of table table_a by file30 31# CHECK:      --- !WASM32# CHECK-NEXT: FileHeader:33# CHECK-NEXT:   Version:         0x134# CHECK-NEXT: Sections:35# CHECK-NEXT:   - Type:            TYPE36# CHECK-NEXT:     Signatures:37# CHECK-NEXT:       - Index:           038# CHECK-NEXT:         ParamTypes:      []39# CHECK-NEXT:         ReturnTypes:     []40# CHECK-NEXT:       - Index:           141# CHECK-NEXT:         ParamTypes:      []42# CHECK-NEXT:         ReturnTypes:43# CHECK-NEXT:           - I6444# CHECK-NEXT:       - Index:           245# CHECK-NEXT:         ParamTypes:      []46# CHECK-NEXT:         ReturnTypes:47# CHECK-NEXT:           - I3248# CHECK-NEXT:   - Type:            IMPORT49# CHECK-NEXT:     Imports:50# CHECK-NEXT:       - Module:          env51# CHECK-NEXT:         Field:           table_a52# CHECK-NEXT:         Kind:            TABLE53# CHECK-NEXT:         Table:54# CHECK-NEXT:           Index:           055# CHECK-NEXT:           ElemType:        FUNCREF56# CHECK-NEXT:           Limits:57# CHECK-NEXT:             Minimum:         0x058# CHECK-NEXT:       - Module:          env59# CHECK-NEXT:         Field:           foo60# CHECK-NEXT:         Kind:            FUNCTION61# CHECK-NEXT:         SigIndex:        262# CHECK-NEXT:   - Type:            FUNCTION63# CHECK-NEXT:     FunctionTypes:   [ 0, 1, 0 ]64# CHECK-NEXT:   - Type:            TABLE65# CHECK-NEXT:     Tables:66# CHECK-NEXT:       - Index:           167# CHECK-NEXT:         ElemType:        FUNCREF68# CHECK-NEXT:         Limits:69# CHECK-NEXT:           Minimum:         0x070# CHECK-NEXT:       - Index:           271# CHECK-NEXT:         ElemType:        EXTERNREF72# CHECK-NEXT:         Limits:73# CHECK-NEXT:           Minimum:         0x074# CHECK-NEXT:       - Index:           375# CHECK-NEXT:         ElemType:        FUNCREF76# CHECK-NEXT:         Limits:77# CHECK-NEXT:           Flags:           [ HAS_MAX ]78# CHECK-NEXT:           Minimum:         0x379# CHECK-NEXT:           Maximum:         0x380# CHECK-NEXT:   - Type:            MEMORY81# CHECK-NEXT:     Memories:82# CHECK-NEXT:       - Minimum:         0x283# CHECK-NEXT:   - Type:            GLOBAL84# CHECK-NEXT:     Globals:85# CHECK-NEXT:       - Index:           086# CHECK-NEXT:         Type:            I3287# CHECK-NEXT:         Mutable:         true88# CHECK-NEXT:         InitExpr:89# CHECK-NEXT:           Opcode:          I32_CONST90# CHECK-NEXT:           Value:           6553691# CHECK-NEXT:   - Type:            EXPORT92# CHECK-NEXT:     Exports:93# CHECK-NEXT:       - Name:            memory94# CHECK-NEXT:         Kind:            MEMORY95# CHECK-NEXT:         Index:           096# CHECK-NEXT:       - Name:            table_b97# CHECK-NEXT:         Kind:            TABLE98# CHECK-NEXT:         Index:           199# CHECK-NEXT:       - Name:            table_c100# CHECK-NEXT:         Kind:            TABLE101# CHECK-NEXT:         Index:           2102# CHECK-NEXT:       - Name:            call_indirect_explicit_tables103# CHECK-NEXT:         Kind:            FUNCTION104# CHECK-NEXT:         Index:           1105# CHECK-NEXT:       - Name:            bar106# CHECK-NEXT:         Kind:            FUNCTION107# CHECK-NEXT:         Index:           2108# CHECK-NEXT:       - Name:            call_bar_indirect109# CHECK-NEXT:         Kind:            FUNCTION110# CHECK-NEXT:         Index:           3111# CHECK-NEXT:   - Type:            ELEM112# CHECK-NEXT:     Segments:113# CHECK-NEXT:       - Flags:           2114# CHECK-NEXT:         TableNumber:     3115# CHECK-NEXT:         ElemKind:        FUNCREF116# CHECK-NEXT:         Offset:117# CHECK-NEXT:           Opcode:          I32_CONST118# CHECK-NEXT:           Value:           1119# CHECK-NEXT:         Functions:       [ 2, 0 ]120# CHECK-NEXT:   - Type:            CODE121# CHECK-NEXT:     Functions:122# CHECK-NEXT:       - Index:           1123# CHECK-NEXT:         Locals:          []124# CHECK-NEXT:         Body:            41001180808080008080808000410011808080800081808080000B125# CHECK-NEXT:       - Index:           2126# CHECK-NEXT:         Locals:          []127# CHECK-NEXT:         Body:            42010B128# CHECK-NEXT:       - Index:           3129# CHECK-NEXT:         Locals:          []130# CHECK-NEXT:         Body:            41002802808084800011818080800083808080001A41002802848084800011828080800083808080001A0B131# CHECK-NEXT:   - Type:            DATA132# CHECK-NEXT:     Segments:133# CHECK-NEXT:       - SectionOffset:   8134# CHECK-NEXT:         InitFlags:       0135# CHECK-NEXT:         Offset:136# CHECK-NEXT:           Opcode:          I32_CONST137# CHECK-NEXT:           Value:           65536138# CHECK-NEXT:         Content:         '0100000002000000'139# CHECK-NEXT:   - Type:            CUSTOM140# CHECK-NEXT:     Name:            name141# CHECK-NEXT:     FunctionNames:142# CHECK-NEXT:       - Index:           0143# CHECK-NEXT:         Name:            foo144# CHECK-NEXT:       - Index:           1145# CHECK-NEXT:         Name:            call_indirect_explicit_tables146# CHECK-NEXT:       - Index:           2147# CHECK-NEXT:         Name:            bar148# CHECK-NEXT:       - Index:           3149# CHECK-NEXT:         Name:            call_bar_indirect150# CHECK-NEXT:     GlobalNames:151# CHECK-NEXT:       - Index:           0152# CHECK-NEXT:         Name:            __stack_pointer153