summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-01-31 09:08:36 -0800
committerAlon Zakai <alonzakai@gmail.com>2016-01-31 09:08:36 -0800
commit36df20b097e074c3f37a6a2b2bc0bb3b174cdd30 (patch)
treef67f5afd32953976ec883c09d2dced64f9c778e6
parent9cbcb0753617a61f34bd716cfceb0555035772c2 (diff)
downloadbinaryen-36df20b097e074c3f37a6a2b2bc0bb3b174cdd30.tar.gz
binaryen-36df20b097e074c3f37a6a2b2bc0bb3b174cdd30.tar.bz2
binaryen-36df20b097e074c3f37a6a2b2bc0bb3b174cdd30.zip
fix block type in LowerIfElse
-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)
+ )
)
)
)