diff --git a/libsolidity/formal/CHC.cpp b/libsolidity/formal/CHC.cpp index 92ff0254c..f4930d0b9 100644 --- a/libsolidity/formal/CHC.cpp +++ b/libsolidity/formal/CHC.cpp @@ -920,10 +920,15 @@ void CHC::setCurrentBlock(Predicate const& _block) set CHC::transactionVerificationTargetsIds(ASTNode const* _txRoot) { set verificationTargetsIds; - solidity::util::BreadthFirstSearch{{_txRoot}}.run([&](auto const* function, auto&& _addChild) { - verificationTargetsIds.insert(m_functionTargetIds[function].begin(), m_functionTargetIds[function].end()); - for (auto const* called: m_callGraph[function]) - _addChild(called); + struct ASTNodeCompare: EncodingContext::IdCompare + { + bool operator<(ASTNodeCompare _other) const { return operator()(node, _other.node); } + ASTNode const* node; + }; + solidity::util::BreadthFirstSearch{{{{}, _txRoot}}}.run([&](auto _node, auto&& _addChild) { + verificationTargetsIds.insert(m_functionTargetIds[_node.node].begin(), m_functionTargetIds[_node.node].end()); + for (ASTNode const* called: m_callGraph[_node.node]) + _addChild({{}, called}); }); return verificationTargetsIds; }