diff options
-rw-r--r-- | src/passes/Print.cpp | 10 | ||||
-rw-r--r-- | test/lit/wat-kitchen-sink.wast | 4 |
2 files changed, 6 insertions, 8 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index 0b15477ee..bbf5f2a6b 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -2229,10 +2229,9 @@ struct PrintExpressionContents o << ' '; if (curr->ref->type == Type::unreachable) { // Need to print some reference type in the correct hierarchy rather - // than unreachable, and the bottom type is valid in the most - // contexts. - printType( - Type(curr->castType.getHeapType().getBottom(), NonNullable)); + // than unreachable, and the cast type itself is the best possible + // option. + printType(curr->castType); } else { printType(curr->ref->type); } @@ -2244,8 +2243,7 @@ struct PrintExpressionContents curr->name.print(o); o << ' '; if (curr->ref->type == Type::unreachable) { - printType( - Type(curr->castType.getHeapType().getBottom(), NonNullable)); + printType(curr->castType); } else { printType(curr->ref->type); } diff --git a/test/lit/wat-kitchen-sink.wast b/test/lit/wat-kitchen-sink.wast index 52cb2ca1d..33d2e1d62 100644 --- a/test/lit/wat-kitchen-sink.wast +++ b/test/lit/wat-kitchen-sink.wast @@ -4086,7 +4086,7 @@ ;; CHECK-NEXT: (block $block (result i31ref) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (block (result (ref any)) - ;; CHECK-NEXT: (br_on_cast $block (ref none) i31ref + ;; CHECK-NEXT: (br_on_cast $block i31ref i31ref ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -4136,7 +4136,7 @@ ;; CHECK-NEXT: (block $block (result (ref any)) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (block (result i31ref) - ;; CHECK-NEXT: (br_on_cast_fail $block (ref none) i31ref + ;; CHECK-NEXT: (br_on_cast_fail $block i31ref i31ref ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) |