diff options
author | Christian <c@ethdev.com> | 2015-01-20 22:58:04 +0800 |
---|---|---|
committer | Christian <c@ethdev.com> | 2015-01-20 22:58:04 +0800 |
commit | d854e56789c4bf2f5caca563dd0e660dababf181 (patch) | |
tree | 79b755313238b71fe44ae01504ac95ef6c38e338 /CallGraph.cpp | |
parent | 417f9c03d03a9fa52665bd238a42081d55df62c9 (diff) | |
download | dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.tar dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.tar.gz dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.tar.bz2 dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.tar.lz dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.tar.xz dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.tar.zst dexon-solidity-d854e56789c4bf2f5caca563dd0e660dababf181.zip |
Include virtual function overrides in constructor context.
Diffstat (limited to 'CallGraph.cpp')
-rw-r--r-- | CallGraph.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/CallGraph.cpp b/CallGraph.cpp index 88d874f3..8766114f 100644 --- a/CallGraph.cpp +++ b/CallGraph.cpp @@ -38,6 +38,7 @@ void CallGraph::addNode(ASTNode const& _node) set<FunctionDefinition const*> const& CallGraph::getCalls() { + computeCallGraph(); return m_functionsSeen; } @@ -45,8 +46,7 @@ void CallGraph::computeCallGraph() { while (!m_workQueue.empty()) { - FunctionDefinition const* fun = m_workQueue.front(); - fun->accept(*this); + m_workQueue.front()->accept(*this); m_workQueue.pop(); } } @@ -55,7 +55,12 @@ bool CallGraph::visit(Identifier const& _identifier) { FunctionDefinition const* fun = dynamic_cast<FunctionDefinition const*>(_identifier.getReferencedDeclaration()); if (fun) + { + if (m_overrideResolver) + fun = (*m_overrideResolver)(fun->getName()); + solAssert(fun, ""); addFunction(*fun); + } return true; } |