mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #12082 from ethereum/controlFlowSideEffectsUserDefined
Control flow side effects of user defined functions
This commit is contained in:
@@ -533,14 +533,14 @@ void ControlFlowBuilder::operator()(yul::FunctionCall const& _functionCall)
|
||||
yul::ASTWalker::operator()(_functionCall);
|
||||
|
||||
if (auto const *builtinFunction = m_inlineAssembly->dialect().builtin(_functionCall.functionName.name))
|
||||
if (builtinFunction->controlFlowSideEffects.terminates)
|
||||
{
|
||||
if (builtinFunction->controlFlowSideEffects.reverts)
|
||||
connect(m_currentNode, m_revertNode);
|
||||
else
|
||||
connect(m_currentNode, m_transactionReturnNode);
|
||||
{
|
||||
if (builtinFunction->controlFlowSideEffects.canTerminate)
|
||||
connect(m_currentNode, m_transactionReturnNode);
|
||||
if (builtinFunction->controlFlowSideEffects.canRevert)
|
||||
connect(m_currentNode, m_revertNode);
|
||||
if (!builtinFunction->controlFlowSideEffects.canContinue)
|
||||
m_currentNode = newLabel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ControlFlowBuilder::operator()(yul::FunctionDefinition const&)
|
||||
|
||||
Reference in New Issue
Block a user