File: recursive-types.wast

package info (click to toggle)
binaryen 108-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 35,424 kB
  • sloc: cpp: 151,487; javascript: 62,522; ansic: 13,124; python: 5,260; pascal: 441; sh: 75; asm: 27; makefile: 8
file content (49 lines) | stat: -rw-r--r-- 1,530 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
;; Test that a trivial recursive type works properly

;; RUN: wasm-opt %s -all --name-types -S -o - | filecheck %s

(module
  (type (func (param (ref null 0)) (result (ref null 0))))
  (type (func (param (ref null 1)) (result (ref null 1))))
  (type (func (param (ref null 0)) (result (ref null 1))))
  (type (func (param (ref null 3)) (result (ref null 4))))
  (type (func (param (ref null 4)) (result (ref null 3))))

  ;; CHECK:      (type $type$0 (func (param (ref null $type$0)) (result (ref null $type$0))))

  ;; CHECK:      (func $foo (param $0 (ref null $type$0)) (result (ref null $type$0))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $foo (type 0)
    (unreachable)
  )

  ;; CHECK:      (func $bar (param $0 (ref null $type$0)) (result (ref null $type$0))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $bar (type 1)
    (unreachable)
  )

  ;; CHECK:      (func $baz (param $0 (ref null $type$0)) (result (ref null $type$0))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $baz (type 2)
    (unreachable)
  )

  ;; CHECK:      (func $qux (param $0 (ref null $type$0)) (result (ref null $type$0))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $qux (type 3)
    (unreachable)
  )

  ;; CHECK:      (func $quux (param $0 (ref null $type$0)) (result (ref null $type$0))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $quux (type 4)
    (unreachable)
  )
)