summaryrefslogtreecommitdiff
path: root/src/passes/RemoveUnusedBrs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RemoveUnusedBrs.cpp')
-rw-r--r--src/passes/RemoveUnusedBrs.cpp8
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
+ }
}
}
};