Take revert statement into account in control flow graph.

This commit is contained in:
chriseth
2021-03-30 21:15:46 +02:00
parent d5669696d5
commit 1057fd5355
4 changed files with 42 additions and 0 deletions
@@ -236,6 +236,16 @@ bool ControlFlowBuilder::visit(Throw const& _throw)
return false;
}
bool ControlFlowBuilder::visit(RevertStatement const& _revert)
{
solAssert(!!m_currentNode, "");
solAssert(!!m_revertNode, "");
visitNode(_revert);
connect(m_currentNode, m_revertNode);
m_currentNode = newLabel();
return false;
}
bool ControlFlowBuilder::visit(PlaceholderStatement const&)
{
solAssert(!!m_currentNode, "");
@@ -56,6 +56,7 @@ private:
bool visit(Break const&) override;
bool visit(Continue const&) override;
bool visit(Throw const&) override;
bool visit(RevertStatement const&) override;
bool visit(PlaceholderStatement const&) override;
bool visit(FunctionCall const& _functionCall) override;
bool visit(ModifierInvocation const& _modifierInvocation) override;