| ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. | |
| ;; RUN: wasm-opt --new-wat-parser --hybrid -all %s -S -o - | filecheck %s | |
| (module $parse | |
| ;; types | |
| (rec | |
| ;; CHECK: (rec | |
| ;; CHECK-NEXT: (type $s0 (struct_subtype data)) | |
| (type $s0 (sub (struct))) | |
| ;; CHECK: (type $s1 (struct_subtype data)) | |
| (type $s1 (struct (field))) | |
| ) | |
| (rec) | |
| ;; CHECK: (type $s2 (struct_subtype (field i32) data)) | |
| (type $s2 (struct i32)) | |
| ;; CHECK: (type $s3 (struct_subtype (field i64) data)) | |
| (type $s3 (struct (field i64))) | |
| ;; CHECK: (type $s4 (struct_subtype (field $x f32) data)) | |
| (type $s4 (struct (field $x f32))) | |
| ;; CHECK: (type $s5 (struct_subtype (field i32) (field i64) data)) | |
| (type $s5 (struct i32 i64)) | |
| ;; CHECK: (type $s6 (struct_subtype (field i64) (field f32) data)) | |
| (type $s6 (struct (field i64 f32))) | |
| ;; CHECK: (type $s7 (struct_subtype (field $x f32) (field $y f64) data)) | |
| (type $s7 (struct (field $x f32) (field $y f64))) | |
| ;; CHECK: (type $s8 (struct_subtype (field i32) (field i64) (field $z f32) (field f64) (field (mut i32)) data)) | |
| (type $s8 (struct i32 (field) i64 (field $z f32) (field f64 (mut i32)))) | |
| ;; CHECK: (type $a0 (array_subtype i32 data)) | |
| (type $a0 (array i32)) | |
| ;; CHECK: (type $a1 (array_subtype i64 data)) | |
| (type $a1 (array (field i64))) | |
| ;; CHECK: (type $a2 (array_subtype (mut f32) data)) | |
| (type $a2 (array (mut f32))) | |
| ;; CHECK: (type $a3 (array_subtype (mut f64) data)) | |
| (type $a3 (array (field $x (mut f64)))) | |
| (rec | |
| ;; CHECK: (type $void (func_subtype func)) | |
| (type $void (func)) | |
| ) | |
| ;; CHECK: (type $subvoid (func_subtype $void)) | |
| (type $subvoid (sub $void (func))) | |
| ;; CHECK: (type $many (func_subtype (param i32 i64 f32 f64) (result anyref (ref func)) func)) | |
| (type $many (func (param $x i32) (param i64 f32) (param) (param $y f64) | |
| (result anyref (ref func)))) | |
| ;; CHECK: (type $submany (func_subtype (param i32 i64 f32 f64) (result anyref (ref func)) $many)) | |
| (type $submany (sub $many (func (param i32 i64 f32 f64) (result anyref (ref func))))) | |
| ;; globals | |
| (global $g1 (export "g1") (export "g1.1") (import "mod" "g1") i32) | |
| (global $g2 (import "mod" "g2") (mut i64)) | |
| (global (import "" "g3") (ref 0)) | |
| (global (import "mod" "") (ref null $many)) | |
| (global i32 i32.const 0) | |
| ;; CHECK: (import "mod" "g1" (global $g1 i32)) | |
| ;; CHECK: (import "mod" "g2" (global $g2 (mut i64))) | |
| ;; CHECK: (import "" "g3" (global $gimport$0 (ref $s0))) | |
| ;; CHECK: (import "mod" "" (global $gimport$1 (ref null $many))) | |
| ;; CHECK: (global $2 i32 (i32.const 0)) | |
| ;; CHECK: (global $i32 i32 (i32.const 42)) | |
| (global $i32 i32 i32.const 42) | |
| ;; uninteresting globals just to use the types | |
| ;; CHECK: (global $s0 (mut (ref null $s0)) (ref.null $s0)) | |
| (global $s0 (mut (ref null $s0)) ref.null $s0) | |
| ;; CHECK: (global $s1 (mut (ref null $s1)) (ref.null $s1)) | |
| (global $s1 (mut (ref null $s1)) ref.null $s1) | |
| ;; CHECK: (global $s2 (mut (ref null $s2)) (ref.null $s2)) | |
| (global $s2 (mut (ref null $s2)) ref.null $s2) | |
| ;; CHECK: (global $s3 (mut (ref null $s3)) (ref.null $s3)) | |
| (global $s3 (mut (ref null $s3)) ref.null $s3) | |
| ;; CHECK: (global $s4 (mut (ref null $s4)) (ref.null $s4)) | |
| (global $s4 (mut (ref null $s4)) ref.null $s4) | |
| ;; CHECK: (global $s5 (mut (ref null $s5)) (ref.null $s5)) | |
| (global $s5 (mut (ref null $s5)) ref.null $s5) | |
| ;; CHECK: (global $s6 (mut (ref null $s6)) (ref.null $s6)) | |
| (global $s6 (mut (ref null $s6)) ref.null $s6) | |
| ;; CHECK: (global $s7 (mut (ref null $s7)) (ref.null $s7)) | |
| (global $s7 (mut (ref null $s7)) ref.null $s7) | |
| ;; CHECK: (global $s8 (mut (ref null $s8)) (ref.null $s8)) | |
| (global $s8 (mut (ref null $s8)) ref.null $s8) | |
| ;; CHECK: (global $a0 (mut (ref null $a0)) (ref.null $a0)) | |
| (global $a0 (mut (ref null $a0)) ref.null $a0) | |
| ;; CHECK: (global $a1 (mut (ref null $a1)) (ref.null $a1)) | |
| (global $a1 (mut (ref null $a1)) ref.null $a1) | |
| ;; CHECK: (global $a2 (mut (ref null $a2)) (ref.null $a2)) | |
| (global $a2 (mut (ref null $a2)) ref.null $a2) | |
| ;; CHECK: (global $a3 (mut (ref null $a3)) (ref.null $a3)) | |
| (global $a3 (mut (ref null $a3)) ref.null $a3) | |
| ;; CHECK: (global $sub0 (mut (ref null $subvoid)) (ref.null $subvoid)) | |
| (global $sub0 (mut (ref null $subvoid)) ref.null $subvoid) | |
| ;; CHECK: (global $sub1 (mut (ref null $submany)) (ref.null $submany)) | |
| (global $sub1 (mut (ref null $submany)) ref.null $submany) | |
| ) | |
| ;; CHECK: (export "g1" (global $g1)) | |
| ;; CHECK: (export "g1.1" (global $g1)) |