diff options
Diffstat (limited to 'src/passes/RemoveUnusedBrs.cpp')
-rw-r--r-- | src/passes/RemoveUnusedBrs.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp index ff50847de..5f3018c5f 100644 --- a/src/passes/RemoveUnusedBrs.cpp +++ b/src/passes/RemoveUnusedBrs.cpp @@ -29,9 +29,13 @@ struct RemoveUnusedBrs : public Pass { if (curr->list.size() == 0) return; Break* last = curr->list.back()->dyn_cast<Break>(); if (!last) return; - if (last->value) return; + if (last->condition) return; if (last->name == curr->name) { - curr->list.pop_back(); + if (!last->value) { + curr->list.pop_back(); + } else { + curr->list[curr->list.size()-1] = last->value; // can replace with the value + } } } }; |