diff options
Diffstat (limited to 'lib/Analysis/DataStructure')
-rw-r--r-- | lib/Analysis/DataStructure/DSCallSiteIterator.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Analysis/DataStructure/DSCallSiteIterator.h b/lib/Analysis/DataStructure/DSCallSiteIterator.h index 783bfa58da..39a16d6f7e 100644 --- a/lib/Analysis/DataStructure/DSCallSiteIterator.h +++ b/lib/Analysis/DataStructure/DSCallSiteIterator.h @@ -39,9 +39,11 @@ struct DSCallSiteIterator { DSNode *CalleeNode = (*FCs)[CallSite].getCalleeNode(); if (CallSiteEntry || isCompleteNode(CalleeNode)) { const std::vector<GlobalValue*> &Callees = CalleeNode->getGlobals(); - - if (CallSiteEntry < Callees.size()) - return; + while (CallSiteEntry < Callees.size()) { + if (isa<Function>(Callees[CallSiteEntry])) + return; + ++CallSiteEntry; + } } } CallSiteEntry = 0; |