summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/LowerIfElse.cpp1
-rw-r--r--test/passes/lower-if-else.txt12
-rw-r--r--test/passes/lower-if-else.wast8
3 files changed, 21 insertions, 0 deletions
diff --git a/src/passes/LowerIfElse.cpp b/src/passes/LowerIfElse.cpp
index dd7fbf998..fa575d87d 100644
--- a/src/passes/LowerIfElse.cpp
+++ b/src/passes/LowerIfElse.cpp
@@ -49,6 +49,7 @@ struct LowerIfElse : public WalkerPass<WasmWalker<LowerIfElse, void>> {
block->name = name;
block->list.push_back(curr);
block->list.push_back(curr->ifFalse);
+ block->type = curr->type;
curr->ifFalse = nullptr;
auto break_ = allocator->alloc<Break>();
break_->name = name;
diff --git a/test/passes/lower-if-else.txt b/test/passes/lower-if-else.txt
index 393a21e68..76aeb58f5 100644
--- a/test/passes/lower-if-else.txt
+++ b/test/passes/lower-if-else.txt
@@ -24,6 +24,18 @@
)
(i32.const 6)
)
+ (i32.eq
+ (block $L2
+ (if
+ (i32.const 4)
+ (br $L2
+ (i32.const 5)
+ )
+ )
+ (i32.const 6)
+ )
+ (i32.const 177)
+ )
)
)
)
diff --git a/test/passes/lower-if-else.wast b/test/passes/lower-if-else.wast
index 70251a469..11c44fadf 100644
--- a/test/passes/lower-if-else.wast
+++ b/test/passes/lower-if-else.wast
@@ -16,6 +16,14 @@
(i32.const 5)
(i32.const 6)
)
+ (i32.eq
+ (if_else
+ (i32.const 4)
+ (i32.const 5)
+ (i32.const 6)
+ )
+ (i32.const 177)
+ )
)
)
)