summaryrefslogtreecommitdiff
path: root/src/passes/Inlining.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/Inlining.cpp')
-rw-r--r--src/passes/Inlining.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/passes/Inlining.cpp b/src/passes/Inlining.cpp
index 0c95dc4b4..25993c7ec 100644
--- a/src/passes/Inlining.cpp
+++ b/src/passes/Inlining.cpp
@@ -275,7 +275,9 @@ struct Updater : public PostWalker<Updater> {
}
curr->isReturn = false;
curr->type = results;
- if (curr->type.isConcrete()) {
+ // There might still be unreachable children causing this to be unreachable.
+ curr->finalize();
+ if (results.isConcrete()) {
replaceCurrent(builder->makeBreak(returnName, curr));
} else {
replaceCurrent(builder->blockify(curr, builder->makeBreak(returnName)));