diff --git a/src/passes/ReorderLocals.cpp b/src/passes/ReorderLocals.cpp index 3315d0e0285..b637b63f4b3 100644 --- a/src/passes/ReorderLocals.cpp +++ b/src/passes/ReorderLocals.cpp @@ -102,15 +102,11 @@ struct ReorderLocals : public WalkerPass> { : func(func), oldToNew(oldToNew) {} void visitLocalGet(LocalGet* curr) { - if (func->isVar(curr->index)) { - curr->index = oldToNew[curr->index]; - } + curr->index = oldToNew[curr->index]; } void visitLocalSet(LocalSet* curr) { - if (func->isVar(curr->index)) { - curr->index = oldToNew[curr->index]; - } + curr->index = oldToNew[curr->index]; } }; ReIndexer reIndexer(curr, oldToNew); diff --git a/src/wasm/wasm.cpp b/src/wasm/wasm.cpp index 6e5f1fdf56a..60828d7137f 100644 --- a/src/wasm/wasm.cpp +++ b/src/wasm/wasm.cpp @@ -940,7 +940,9 @@ size_t Function::getNumLocals() { return params.size() + vars.size(); } bool Function::isParam(Index index) { return index < params.size(); } -bool Function::isVar(Index index) { return index >= params.size(); } +bool Function::isVar(Index index) { + return params.size() <= index && index < params.size() + vars.size(); +} bool Function::hasLocalName(Index index) const { return localNames.find(index) != localNames.end();