summaryrefslogtreecommitdiff
path: root/src/passes/ReorderLocals.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/ReorderLocals.cpp')
-rw-r--r--src/passes/ReorderLocals.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/passes/ReorderLocals.cpp b/src/passes/ReorderLocals.cpp
index 1a3fbf09a..0e626e0a2 100644
--- a/src/passes/ReorderLocals.cpp
+++ b/src/passes/ReorderLocals.cpp
@@ -106,8 +106,11 @@ struct ReorderLocals : public WalkerPass<PostWalker<ReorderLocals, Visitor<Reord
curr->localNames.resize(newToOld.size());
curr->localIndices.clear();
for (size_t i = 0; i < newToOld.size(); i++) {
- curr->localNames[i] = oldLocalNames[newToOld[i]];
- curr->localIndices[oldLocalNames[newToOld[i]]] = i;
+ if (newToOld[i] < oldLocalNames.size()) {
+ auto old = oldLocalNames[newToOld[i]];
+ curr->localNames[i] = old;
+ curr->localIndices[old] = i;
+ }
}
}