mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #6070 from ethereum/redundantAssignClearState
Clear state when entering new function.
This commit is contained in:
commit
91c664ca1e
@ -92,6 +92,11 @@ void RedundantAssignEliminator::operator()(Switch const& _switch)
|
|||||||
|
|
||||||
void RedundantAssignEliminator::operator()(FunctionDefinition const& _functionDefinition)
|
void RedundantAssignEliminator::operator()(FunctionDefinition const& _functionDefinition)
|
||||||
{
|
{
|
||||||
|
std::set<YulString> declaredVariables;
|
||||||
|
std::map<YulString, std::map<Assignment const*, State>> assignments;
|
||||||
|
swap(m_declaredVariables, declaredVariables);
|
||||||
|
swap(m_assignments, assignments);
|
||||||
|
|
||||||
(*this)(_functionDefinition.body);
|
(*this)(_functionDefinition.body);
|
||||||
|
|
||||||
for (auto const& param: _functionDefinition.parameters)
|
for (auto const& param: _functionDefinition.parameters)
|
||||||
@ -104,6 +109,9 @@ void RedundantAssignEliminator::operator()(FunctionDefinition const& _functionDe
|
|||||||
changeUndecidedTo(retParam.name, State::Used);
|
changeUndecidedTo(retParam.name, State::Used);
|
||||||
finalize(retParam.name);
|
finalize(retParam.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
swap(m_declaredVariables, declaredVariables);
|
||||||
|
swap(m_assignments, assignments);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RedundantAssignEliminator::operator()(ForLoop const& _forLoop)
|
void RedundantAssignEliminator::operator()(ForLoop const& _forLoop)
|
||||||
|
Loading…
Reference in New Issue
Block a user