/// specified mapping.
void remapLinks(std::map<const DSNode*, DSNodeHandle> &OldNodeMap);
+ /// markReachableNodes - This method recursively traverses the specified
+ /// DSNodes, marking any nodes which are reachable. All reachable nodes it
+ /// adds to the set, which allows it to only traverse visited nodes once.
+ ///
+ void markReachableNodes(std::set<DSNode*> &ReachableNodes);
+
private:
friend class DSNodeHandle;
#include <vector>
#include <map>
+#include <set>
#include <functional>
#include <string>
getPtrArg(a).mergeWith(CS.getPtrArg(a));
}
+ /// markReachableNodes - This method recursively traverses the specified
+ /// DSNodes, marking any nodes which are reachable. All reachable nodes it
+ /// adds to the set, which allows it to only traverse visited nodes once.
+ ///
+ void markReachableNodes(std::set<DSNode*> &Nodes);
+
bool operator<(const DSCallSite &CS) const {
if (Callee < CS.Callee) return true; // This must sort by callee first!
if (Callee > CS.Callee) return false;
/// specified mapping.
void remapLinks(std::map<const DSNode*, DSNodeHandle> &OldNodeMap);
+ /// markReachableNodes - This method recursively traverses the specified
+ /// DSNodes, marking any nodes which are reachable. All reachable nodes it
+ /// adds to the set, which allows it to only traverse visited nodes once.
+ ///
+ void markReachableNodes(std::set<DSNode*> &ReachableNodes);
+
private:
friend class DSNodeHandle;
#include <vector>
#include <map>
+#include <set>
#include <functional>
#include <string>
getPtrArg(a).mergeWith(CS.getPtrArg(a));
}
+ /// markReachableNodes - This method recursively traverses the specified
+ /// DSNodes, marking any nodes which are reachable. All reachable nodes it
+ /// adds to the set, which allows it to only traverse visited nodes once.
+ ///
+ void markReachableNodes(std::set<DSNode*> &Nodes);
+
bool operator<(const DSCallSite &CS) const {
if (Callee < CS.Callee) return true; // This must sort by callee first!
if (Callee > CS.Callee) return false;