forked from kozorizki/binaryen
Most of the work here is avoiding shared and non-nullable exnref in various places, as we cannot support those in the fuzzer (I don't see a way to generate shared exnrefs, and non-nullable ones can be created but not in global places, as the way to create them needs a block and a try).
61 lines
3.4 KiB
Plaintext
61 lines
3.4 KiB
Plaintext
;; RUN: wasm-fuzz-types -v --seed=1 | filecheck %s
|
|
|
|
;; CHECK: Running with seed 1
|
|
;; CHECK-NEXT: Built 20 types:
|
|
;; CHECK-NEXT: (rec
|
|
;; CHECK-NEXT: (type $0 (sub (struct (field (mut i16)) (field (mut (ref $2))) (field (mut (ref null $2))))))
|
|
;; CHECK-NEXT: (type $1 (sub (func (param (ref $1)) (result f64 (ref $0) f32 structref))))
|
|
;; CHECK-NEXT: (type $2 (sub (shared (struct (field (mut (ref null (shared extern)))) (field (mut (ref null $2)))))))
|
|
;; CHECK-NEXT: (type $3 (sub (shared (struct))))
|
|
;; CHECK-NEXT: )
|
|
;; CHECK-NEXT: (rec
|
|
;; CHECK-NEXT: (type $4 (sub (array i32)))
|
|
;; CHECK-NEXT: (type $5 (sub $4 (array i32)))
|
|
;; CHECK-NEXT: (type $6 (shared (func (param (ref null $3)) (result i32))))
|
|
;; CHECK-NEXT: (type $7 (sub $2 (shared (struct (field (mut (ref null (shared extern)))) (field (mut (ref null $2))) (field (mut (ref null $3))) (field (mut i16)) (field (mut (ref null $7))) (field (mut (ref null $7)))))))
|
|
;; CHECK-NEXT: (type $8 (sub $0 (struct (field (mut i16)) (field (mut (ref $2))) (field (mut (ref null $2))))))
|
|
;; CHECK-NEXT: )
|
|
;; CHECK-NEXT: (rec
|
|
;; CHECK-NEXT: (type $9 (shared (array i32)))
|
|
;; CHECK-NEXT: (type $10 (sub $5 (array i32)))
|
|
;; CHECK-NEXT: (type $11 (func (result i32)))
|
|
;; CHECK-NEXT: (type $12 (sub (shared (array (ref $3)))))
|
|
;; CHECK-NEXT: (type $13 (sub (shared (func (param (ref null $19) v128) (result (ref null $12))))))
|
|
;; CHECK-NEXT: (type $14 (sub final $12 (shared (array (ref $3)))))
|
|
;; CHECK-NEXT: (type $15 (sub (shared (func (param i31ref (ref $5)) (result i32)))))
|
|
;; CHECK-NEXT: (type $16 (sub $5 (array i32)))
|
|
;; CHECK-NEXT: (type $17 (sub (func (result (ref $7)))))
|
|
;; CHECK-NEXT: (type $18 (sub (array (mut i8))))
|
|
;; CHECK-NEXT: (type $19 (shared (array v128)))
|
|
;; CHECK-NEXT: )
|
|
;; CHECK-NEXT:
|
|
;; CHECK-NEXT: Inhabitable types:
|
|
;; CHECK-NEXT:
|
|
;; CHECK-NEXT: Built 20 types:
|
|
;; CHECK-NEXT: (rec
|
|
;; CHECK-NEXT: (type $0 (sub (struct (field (mut i16)) (field (mut (ref $2))) (field (mut (ref null $2))))))
|
|
;; CHECK-NEXT: (type $1 (sub (func (param (ref $1)) (result f64 (ref $0) f32 structref))))
|
|
;; CHECK-NEXT: (type $2 (sub (shared (struct (field (mut (ref null (shared extern)))) (field (mut (ref null $2)))))))
|
|
;; CHECK-NEXT: (type $3 (sub (shared (struct))))
|
|
;; CHECK-NEXT: )
|
|
;; CHECK-NEXT: (rec
|
|
;; CHECK-NEXT: (type $4 (sub (array i32)))
|
|
;; CHECK-NEXT: (type $5 (sub $4 (array i32)))
|
|
;; CHECK-NEXT: (type $6 (shared (func (param (ref null $3)) (result i32))))
|
|
;; CHECK-NEXT: (type $7 (sub $2 (shared (struct (field (mut (ref null (shared extern)))) (field (mut (ref null $2))) (field (mut (ref null $3))) (field (mut i16)) (field (mut (ref null $7))) (field (mut (ref null $7)))))))
|
|
;; CHECK-NEXT: (type $8 (sub $0 (struct (field (mut i16)) (field (mut (ref $2))) (field (mut (ref null $2))))))
|
|
;; CHECK-NEXT: )
|
|
;; CHECK-NEXT: (rec
|
|
;; CHECK-NEXT: (type $9 (shared (array i32)))
|
|
;; CHECK-NEXT: (type $10 (sub $5 (array i32)))
|
|
;; CHECK-NEXT: (type $11 (func (result i32)))
|
|
;; CHECK-NEXT: (type $12 (sub (shared (array (ref $3)))))
|
|
;; CHECK-NEXT: (type $13 (sub (shared (func (param (ref null $19) v128) (result (ref null $12))))))
|
|
;; CHECK-NEXT: (type $14 (sub final $12 (shared (array (ref $3)))))
|
|
;; CHECK-NEXT: (type $15 (sub (shared (func (param i31ref (ref $5)) (result i32)))))
|
|
;; CHECK-NEXT: (type $16 (sub $5 (array i32)))
|
|
;; CHECK-NEXT: (type $17 (sub (func (result (ref $7)))))
|
|
;; CHECK-NEXT: (type $18 (sub (array (mut i8))))
|
|
;; CHECK-NEXT: (type $19 (shared (array v128)))
|
|
;; CHECK-NEXT: )
|