diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/binaryen.js/expressions.js | 21 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 9 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 15 | ||||
-rw-r--r-- | test/heap-types.wast | 4 | ||||
-rw-r--r-- | test/heap-types.wast.from-wast | 7 | ||||
-rw-r--r-- | test/heap-types.wast.fromBinary | 7 | ||||
-rw-r--r-- | test/heap-types.wast.fromBinary.noDebugInfo | 7 | ||||
-rw-r--r-- | test/lit/binary/bad-ref-as.test | 5 | ||||
-rw-r--r-- | test/lit/passes/gufa-extern.wast | 9 | ||||
-rw-r--r-- | test/lit/passes/optimize-instructions-gc-tnh.wast | 18 | ||||
-rw-r--r-- | test/lit/passes/optimize-instructions-gc.wast | 109 | ||||
-rw-r--r-- | test/lit/passes/vacuum-gc.wast | 10 | ||||
-rw-r--r-- | test/lit/passes/vacuum-tnh.wast | 10 | ||||
-rw-r--r-- | test/passes/Oz_fuzz-exec_all-features.txt | 38 | ||||
-rw-r--r-- | test/passes/Oz_fuzz-exec_all-features.wast | 8 |
15 files changed, 63 insertions, 214 deletions
diff --git a/test/binaryen.js/expressions.js b/test/binaryen.js/expressions.js index ee55ee90b..c9111c9b4 100644 --- a/test/binaryen.js/expressions.js +++ b/test/binaryen.js/expressions.js @@ -1450,6 +1450,7 @@ console.log("# RefAs"); var op = binaryen.Operations.RefAsNonNull; var value = module.local.get(1, binaryen.anyref); + var externref = module.local.get(3, binaryen.externref); const theRefAs = binaryen.RefAs(module.ref.as_non_null(value)); assert(theRefAs instanceof binaryen.RefAs); assert(theRefAs instanceof binaryen.Expression); @@ -1457,9 +1458,9 @@ console.log("# RefAs"); assert(theRefAs.value === value); assert(theRefAs.type !== binaryen.i32); // TODO: === (ref any) - theRefAs.op = op = binaryen.Operations.RefAsFunc; + theRefAs.op = op = binaryen.Operations.RefAsExternExternalize; assert(theRefAs.op === op); - theRefAs.op = op = binaryen.Operations.RefAsNull; + theRefAs.op = op = binaryen.Operations.RefAsNonNull; theRefAs.value = value = module.local.get(2, binaryen.anyref); assert(theRefAs.value === value); theRefAs.type = binaryen.f64; @@ -1473,21 +1474,7 @@ console.log("# RefAs"); "(ref.as_non_null\n (local.get $2)\n)\n" ); - assert( - binaryen.RefAs(module.ref.as_func(value)).toText() - == - "(ref.as_func\n (local.get $2)\n)\n" - ); - assert( - binaryen.RefAs(module.ref.as_data(value)).toText() - == - "(ref.as_data\n (local.get $2)\n)\n" - ); - assert( - binaryen.RefAs(module.ref.as_i31(value)).toText() - == - "(ref.as_i31\n (local.get $2)\n)\n" - ); + // TODO: extern.externalize and extern.internalize module.dispose(); })(); diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c index cc2c96538..45af52e21 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -1018,15 +1018,6 @@ void test_core() { BinaryenRefAsNonNull(), BinaryenRefNull(module, BinaryenTypeNullref())), BinaryenRefAs(module, - BinaryenRefAsFunc(), - BinaryenRefNull(module, BinaryenTypeNullref())), - BinaryenRefAs(module, - BinaryenRefAsData(), - BinaryenRefNull(module, BinaryenTypeNullref())), - BinaryenRefAs(module, - BinaryenRefAsI31(), - BinaryenRefNull(module, BinaryenTypeNullref())), - BinaryenRefAs(module, BinaryenRefAsExternInternalize(), BinaryenRefNull(module, BinaryenTypeNullExternref())), BinaryenRefAs(module, diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 51298d1a2..6e4af6cf0 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -2009,21 +2009,6 @@ BinaryenFeatureAll: 126975 ) ) (drop - (ref.as_func - (ref.null none) - ) - ) - (drop - (ref.as_data - (ref.null none) - ) - ) - (drop - (ref.as_i31 - (ref.null none) - ) - ) - (drop (extern.internalize (ref.null noextern) ) diff --git a/test/heap-types.wast b/test/heap-types.wast index 5171d5a66..f64dd8814 100644 --- a/test/heap-types.wast +++ b/test/heap-types.wast @@ -185,9 +185,9 @@ (if (ref.is_data (local.get $x)) (unreachable)) (if (ref.is_i31 (local.get $x)) (unreachable)) ) - (func $ref.as_X (param $x anyref) + (func $ref.as_X (param $x anyref) (param $f funcref) (drop (ref.as_non_null (local.get $x))) - (drop (ref.as_func (local.get $x))) + (drop (ref.as_func (local.get $f))) (drop (ref.as_data (local.get $x))) (drop (ref.as_i31 (local.get $x))) ) diff --git a/test/heap-types.wast.from-wast b/test/heap-types.wast.from-wast index b551a9073..703759720 100644 --- a/test/heap-types.wast.from-wast +++ b/test/heap-types.wast.from-wast @@ -9,13 +9,14 @@ (type $parent (struct )) (type $child (struct_subtype (field i32) $parent)) (type $grandchild (struct_subtype (field i32) (field i64) $child)) - (type $anyref_=>_none (func (param anyref))) (type $ref?|$vector|_=>_none (func (param (ref null $vector)))) (type $nested-child-struct (struct (field (mut (ref $child))))) (type $words (array (mut i32))) (type $nested-child-array (array (mut (ref $child)))) + (type $anyref_=>_none (func (param anyref))) (type $ref|$struct.A|_ref?|$struct.A|_ref?|$grandchild|_ref?|$struct.C|_ref?|$nested-child-struct|_=>_ref|$struct.B| (func (param (ref $struct.A) (ref null $struct.A) (ref null $grandchild) (ref null $struct.C) (ref null $nested-child-struct)) (result (ref $struct.B)))) (type $ref|$vector|_ref?|$nested-child-array|_ref?|$grandchild|_=>_ref|$matrix| (func (param (ref $vector) (ref null $nested-child-array) (ref null $grandchild)) (result (ref $matrix)))) + (type $anyref_funcref_=>_none (func (param anyref funcref))) (type $ref?|$struct.C|_=>_none (func (param (ref null $struct.C)))) (type $ref|$vector|_ref?|$vector|_=>_none (func (param (ref $vector) (ref null $vector)))) (type $none_=>_ref|$vector| (func (result (ref $vector)))) @@ -189,7 +190,7 @@ (unreachable) ) ) - (func $ref.as_X (type $anyref_=>_none) (param $x anyref) + (func $ref.as_X (type $anyref_funcref_=>_none) (param $x anyref) (param $f funcref) (drop (ref.as_non_null (local.get $x) @@ -197,7 +198,7 @@ ) (drop (ref.as_func - (local.get $x) + (local.get $f) ) ) (drop diff --git a/test/heap-types.wast.fromBinary b/test/heap-types.wast.fromBinary index 485611fef..8e42051bc 100644 --- a/test/heap-types.wast.fromBinary +++ b/test/heap-types.wast.fromBinary @@ -9,13 +9,14 @@ (type $parent (struct )) (type $child (struct_subtype (field i32) $parent)) (type $grandchild (struct_subtype (field i32) (field i64) $child)) - (type $anyref_=>_none (func (param anyref))) (type $ref?|$vector|_=>_none (func (param (ref null $vector)))) (type $nested-child-struct (struct (field (mut (ref $child))))) (type $words (array (mut i32))) (type $nested-child-array (array (mut (ref $child)))) + (type $anyref_=>_none (func (param anyref))) (type $ref|$struct.A|_ref?|$struct.A|_ref?|$grandchild|_ref?|$struct.C|_ref?|$nested-child-struct|_=>_ref|$struct.B| (func (param (ref $struct.A) (ref null $struct.A) (ref null $grandchild) (ref null $struct.C) (ref null $nested-child-struct)) (result (ref $struct.B)))) (type $ref|$vector|_ref?|$nested-child-array|_ref?|$grandchild|_=>_ref|$matrix| (func (param (ref $vector) (ref null $nested-child-array) (ref null $grandchild)) (result (ref $matrix)))) + (type $anyref_funcref_=>_none (func (param anyref funcref))) (type $ref?|$struct.C|_=>_none (func (param (ref null $struct.C)))) (type $ref|$vector|_ref?|$vector|_=>_none (func (param (ref $vector) (ref null $vector)))) (type $none_=>_ref|$vector| (func (result (ref $vector)))) @@ -187,7 +188,7 @@ (unreachable) ) ) - (func $ref.as_X (type $anyref_=>_none) (param $x anyref) + (func $ref.as_X (type $anyref_funcref_=>_none) (param $x anyref) (param $f funcref) (drop (ref.as_non_null (local.get $x) @@ -195,7 +196,7 @@ ) (drop (ref.as_func - (local.get $x) + (local.get $f) ) ) (drop diff --git a/test/heap-types.wast.fromBinary.noDebugInfo b/test/heap-types.wast.fromBinary.noDebugInfo index 03047def7..3c7203066 100644 --- a/test/heap-types.wast.fromBinary.noDebugInfo +++ b/test/heap-types.wast.fromBinary.noDebugInfo @@ -9,13 +9,14 @@ (type ${} (struct )) (type ${i32} (struct_subtype (field i32) ${})) (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32})) - (type $anyref_=>_none (func (param anyref))) (type $ref?|[mut:f64]|_=>_none (func (param (ref null $[mut:f64])))) (type ${mut:ref|{i32}|} (struct (field (mut (ref ${i32}))))) (type $[mut:i32] (array (mut i32))) (type $[mut:ref|{i32}|] (array (mut (ref ${i32})))) + (type $anyref_=>_none (func (param anyref))) (type $ref|{i32_f32_f64}|_ref?|{i32_f32_f64}|_ref?|{i32_i64}|_ref?|{mut:f32}|_ref?|{mut:ref|{i32}|}|_=>_ref|{i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}| (func (param (ref ${i32_f32_f64}) (ref null ${i32_f32_f64}) (ref null ${i32_i64}) (ref null ${mut:f32}) (ref null ${mut:ref|{i32}|})) (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|})))) (type $ref|[mut:f64]|_ref?|[mut:ref|{i32}|]|_ref?|{i32_i64}|_=>_ref|[mut:ref?|[mut:f64]|]| (func (param (ref $[mut:f64]) (ref null $[mut:ref|{i32}|]) (ref null ${i32_i64})) (result (ref $[mut:ref?|[mut:f64]|])))) + (type $anyref_funcref_=>_none (func (param anyref funcref))) (type $ref?|{mut:f32}|_=>_none (func (param (ref null ${mut:f32})))) (type $ref|[mut:f64]|_ref?|[mut:f64]|_=>_none (func (param (ref $[mut:f64]) (ref null $[mut:f64])))) (type $none_=>_ref|[mut:f64]| (func (result (ref $[mut:f64])))) @@ -187,7 +188,7 @@ (unreachable) ) ) - (func $3 (type $anyref_=>_none) (param $0 anyref) + (func $3 (type $anyref_funcref_=>_none) (param $0 anyref) (param $1 funcref) (drop (ref.as_non_null (local.get $0) @@ -195,7 +196,7 @@ ) (drop (ref.as_func - (local.get $0) + (local.get $1) ) ) (drop diff --git a/test/lit/binary/bad-ref-as.test b/test/lit/binary/bad-ref-as.test index 2afa19904..3accdd553 100644 --- a/test/lit/binary/bad-ref-as.test +++ b/test/lit/binary/bad-ref-as.test @@ -1,6 +1,5 @@ ;; Test that we error properly on a file with a ref.as of a non-ref type. -;; RUN: not wasm-opt %s.wasm 2>&1 | filecheck %s - -;; CHECK: parse exception: bad input type for ref.as: i32 +;; RUN: not wasm-opt -all %s.wasm 2>&1 | filecheck %s +;; CHECK: ref.cast ref must have ref type diff --git a/test/lit/passes/gufa-extern.wast b/test/lit/passes/gufa-extern.wast index 2c38a0118..9d71357aa 100644 --- a/test/lit/passes/gufa-extern.wast +++ b/test/lit/passes/gufa-extern.wast @@ -39,10 +39,13 @@ ;; CHECK: (func $non-exported (type $externref_anyref_=>_none) (param $ext externref) (param $any anyref) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (ref.as_data - ;; CHECK-NEXT: (extern.internalize - ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (extern.internalize + ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop diff --git a/test/lit/passes/optimize-instructions-gc-tnh.wast b/test/lit/passes/optimize-instructions-gc-tnh.wast index 948e03296..502590cde 100644 --- a/test/lit/passes/optimize-instructions-gc-tnh.wast +++ b/test/lit/passes/optimize-instructions-gc-tnh.wast @@ -86,9 +86,7 @@ ;; TNH: (func $ref.is (type $eqref_=>_i32) (param $a eqref) (result i32) ;; TNH-NEXT: (drop ;; TNH-NEXT: (ref.cast $struct - ;; TNH-NEXT: (ref.as_data - ;; TNH-NEXT: (local.get $a) - ;; TNH-NEXT: ) + ;; TNH-NEXT: (local.get $a) ;; TNH-NEXT: ) ;; TNH-NEXT: ) ;; TNH-NEXT: (i32.const 0) @@ -96,9 +94,7 @@ ;; NO_TNH: (func $ref.is (type $eqref_=>_i32) (param $a eqref) (result i32) ;; NO_TNH-NEXT: (drop ;; NO_TNH-NEXT: (ref.cast $struct - ;; NO_TNH-NEXT: (ref.as_data - ;; NO_TNH-NEXT: (local.get $a) - ;; NO_TNH-NEXT: ) + ;; NO_TNH-NEXT: (local.get $a) ;; NO_TNH-NEXT: ) ;; NO_TNH-NEXT: ) ;; NO_TNH-NEXT: (i32.const 0) @@ -140,23 +136,23 @@ ) ) - ;; TNH: (func $ref.is_func (type $anyref_=>_i32) (param $a anyref) (result i32) + ;; TNH: (func $ref.is_func (type $funcref_=>_i32) (param $a funcref) (result i32) ;; TNH-NEXT: (drop - ;; TNH-NEXT: (ref.as_func + ;; TNH-NEXT: (ref.as_non_null ;; TNH-NEXT: (local.get $a) ;; TNH-NEXT: ) ;; TNH-NEXT: ) ;; TNH-NEXT: (i32.const 1) ;; TNH-NEXT: ) - ;; NO_TNH: (func $ref.is_func (type $anyref_=>_i32) (param $a anyref) (result i32) + ;; NO_TNH: (func $ref.is_func (type $funcref_=>_i32) (param $a funcref) (result i32) ;; NO_TNH-NEXT: (drop - ;; NO_TNH-NEXT: (ref.as_func + ;; NO_TNH-NEXT: (ref.as_non_null ;; NO_TNH-NEXT: (local.get $a) ;; NO_TNH-NEXT: ) ;; NO_TNH-NEXT: ) ;; NO_TNH-NEXT: (i32.const 1) ;; NO_TNH-NEXT: ) - (func $ref.is_func (param $a (ref null any)) (result i32) + (func $ref.is_func (param $a funcref) (result i32) ;; The check must succeed. We can return 1 here, and drop the rest, with or ;; without TNH (in particular, TNH should not just remove the cast but not ;; return a 1). diff --git a/test/lit/passes/optimize-instructions-gc.wast b/test/lit/passes/optimize-instructions-gc.wast index e6ee4784a..631697e27 100644 --- a/test/lit/passes/optimize-instructions-gc.wast +++ b/test/lit/passes/optimize-instructions-gc.wast @@ -366,95 +366,6 @@ ) ) - ;; similar to $unneeded_as, but the values are of mixed kind (as_func of - ;; data, etc.), so we know we will trap - ;; CHECK: (func $unneeded_as_bad_kinds (type $funcref_dataref_i31ref_=>_none) (param $func funcref) (param $struct dataref) (param $i31 i31ref) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result (ref func)) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $struct) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result (ref i31)) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $func) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result (ref func)) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $struct) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result (ref i31)) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $func) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; NOMNL: (func $unneeded_as_bad_kinds (type $funcref_dataref_i31ref_=>_none) (param $func funcref) (param $struct dataref) (param $i31 i31ref) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (block (result (ref func)) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (local.get $struct) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (unreachable) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (block (result (ref i31)) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (local.get $func) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (unreachable) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (block (result (ref func)) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (local.get $struct) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (unreachable) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (block (result (ref i31)) - ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (local.get $func) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: (unreachable) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: ) - ;; NOMNL-NEXT: ) - (func $unneeded_as_bad_kinds - (param $func (ref null func)) - (param $struct (ref null struct)) - (param $i31 (ref null i31)) - (drop - (ref.as_func (local.get $struct)) - ) - (drop - (ref.as_i31 (local.get $func)) - ) - ;; also check non-nullable types as inputs - (drop - (ref.as_func (ref.as_non_null (local.get $struct))) - ) - (drop - (ref.as_i31 (ref.as_non_null (local.get $func))) - ) - ) - ;; CHECK: (func $unneeded_unreachability (type $void) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (ref.is_func @@ -462,7 +373,10 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (ref.as_func + ;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -474,7 +388,10 @@ ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (ref.as_func + ;; NOMNL-NEXT: (block ;; (replaces something unreachable we can't emit) + ;; NOMNL-NEXT: (drop + ;; NOMNL-NEXT: (unreachable) + ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: (unreachable) ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: ) @@ -3129,12 +3046,18 @@ ) ;; CHECK: (func $as_of_unreachable (type $none_=>_ref|data|) (result (ref data)) - ;; CHECK-NEXT: (ref.as_data + ;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; NOMNL: (func $as_of_unreachable (type $none_=>_ref|data|) (result (ref data)) - ;; NOMNL-NEXT: (ref.as_data + ;; NOMNL-NEXT: (block ;; (replaces something unreachable we can't emit) + ;; NOMNL-NEXT: (drop + ;; NOMNL-NEXT: (unreachable) + ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: (unreachable) ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: ) diff --git a/test/lit/passes/vacuum-gc.wast b/test/lit/passes/vacuum-gc.wast index c7ff5a37f..c131bef20 100644 --- a/test/lit/passes/vacuum-gc.wast +++ b/test/lit/passes/vacuum-gc.wast @@ -12,11 +12,6 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (ref.as_func - ;; CHECK-NEXT: (local.get $x) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (ref.as_data ;; CHECK-NEXT: (local.get $x) ;; CHECK-NEXT: ) @@ -36,11 +31,6 @@ ) ) (drop - (ref.as_func - (local.get $x) - ) - ) - (drop (ref.as_data (local.get $x) ) diff --git a/test/lit/passes/vacuum-tnh.wast b/test/lit/passes/vacuum-tnh.wast index c1e8c2059..40aac16c1 100644 --- a/test/lit/passes/vacuum-tnh.wast +++ b/test/lit/passes/vacuum-tnh.wast @@ -27,11 +27,6 @@ ;; NO_TNH-NEXT: ) ;; NO_TNH-NEXT: ) ;; NO_TNH-NEXT: (drop - ;; NO_TNH-NEXT: (ref.as_func - ;; NO_TNH-NEXT: (local.get $y) - ;; NO_TNH-NEXT: ) - ;; NO_TNH-NEXT: ) - ;; NO_TNH-NEXT: (drop ;; NO_TNH-NEXT: (ref.as_data ;; NO_TNH-NEXT: (local.get $y) ;; NO_TNH-NEXT: ) @@ -61,11 +56,6 @@ ;; Other ref.as* as well. (drop - (ref.as_func - (local.get $y) - ) - ) - (drop (ref.as_data (local.get $y) ) diff --git a/test/passes/Oz_fuzz-exec_all-features.txt b/test/passes/Oz_fuzz-exec_all-features.txt index 30949def4..2ff239257 100644 --- a/test/passes/Oz_fuzz-exec_all-features.txt +++ b/test/passes/Oz_fuzz-exec_all-features.txt @@ -22,8 +22,6 @@ [fuzz-exec] calling br-on_non_null-2 [LoggingExternalInterface logging 1] [trap unreachable] -[fuzz-exec] calling ref-as-func-of-data -[trap not a func] [fuzz-exec] calling ref-as-func-of-func [fuzz-exec] calling cast-on-func [LoggingExternalInterface logging 0] @@ -73,17 +71,16 @@ (export "cast-null-anyref-to-gc" (func $5)) (export "br-on_non_null" (func $7)) (export "br-on_non_null-2" (func $8)) - (export "ref-as-func-of-data" (func $9)) (export "ref-as-func-of-func" (func $7)) - (export "cast-on-func" (func $12)) + (export "cast-on-func" (func $11)) (export "array-alloc-failure" (func $7)) - (export "init-array-packed" (func $14)) - (export "array-copy" (func $16)) - (export "array.init_static" (func $17)) - (export "array.init_static-packed" (func $18)) - (export "static-casts" (func $19)) + (export "init-array-packed" (func $13)) + (export "array-copy" (func $15)) + (export "array.init_static" (func $16)) + (export "array.init_static-packed" (func $17)) + (export "static-casts" (func $18)) (export "static-br_on_cast" (func $2)) - (export "static-br_on_cast_fail" (func $21)) + (export "static-br_on_cast_fail" (func $20)) (func $0 (type $void_func) (; has Stack IR ;) (local $0 i32) (call $log @@ -196,12 +193,7 @@ ) ) ) - (func $9 (type $void_func) (; has Stack IR ;) - (drop - (unreachable) - ) - ) - (func $12 (type $void_func) (; has Stack IR ;) + (func $11 (type $void_func) (; has Stack IR ;) (call $log (i32.const 0) ) @@ -213,7 +205,7 @@ ) (unreachable) ) - (func $14 (type $int_func) (; has Stack IR ;) (result i32) + (func $13 (type $int_func) (; has Stack IR ;) (result i32) (array.get_u $bytes (array.new $bytes (i32.const -43) @@ -222,7 +214,7 @@ (i32.const 10) ) ) - (func $16 (type $void_func) (; has Stack IR ;) + (func $15 (type $void_func) (; has Stack IR ;) (local $0 (ref $bytes)) (local $1 (ref $bytes)) (array.set $bytes @@ -277,7 +269,7 @@ ) ) ) - (func $17 (type $void_func) (; has Stack IR ;) + (func $16 (type $void_func) (; has Stack IR ;) (local $0 (ref $bytes)) (call $log (array.len @@ -302,7 +294,7 @@ ) ) ) - (func $18 (type $void_func) (; has Stack IR ;) + (func $17 (type $void_func) (; has Stack IR ;) (call $log (array.get_u $bytes (array.init_static $bytes @@ -312,7 +304,7 @@ ) ) ) - (func $19 (type $void_func) (; has Stack IR ;) + (func $18 (type $void_func) (; has Stack IR ;) (call $log (i32.const 1) ) @@ -332,7 +324,7 @@ (i32.const 1) ) ) - (func $21 (type $void_func) (; has Stack IR ;) + (func $20 (type $void_func) (; has Stack IR ;) (call $log (i32.const -2) ) @@ -362,8 +354,6 @@ [fuzz-exec] calling br-on_non_null-2 [LoggingExternalInterface logging 1] [trap unreachable] -[fuzz-exec] calling ref-as-func-of-data -[trap unreachable] [fuzz-exec] calling ref-as-func-of-func [fuzz-exec] calling cast-on-func [LoggingExternalInterface logging 0] diff --git a/test/passes/Oz_fuzz-exec_all-features.wast b/test/passes/Oz_fuzz-exec_all-features.wast index 0ce79aa4b..9828d7022 100644 --- a/test/passes/Oz_fuzz-exec_all-features.wast +++ b/test/passes/Oz_fuzz-exec_all-features.wast @@ -177,14 +177,6 @@ ) ) ) - (func "ref-as-func-of-data" - (drop - ;; This should trap. - (ref.as_func - (struct.new_default $struct) - ) - ) - ) (func "ref-as-func-of-func" (drop (ref.as_func |