summaryrefslogtreecommitdiff
path: root/lib/Analysis/IPA/Andersens.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/IPA/Andersens.cpp')
-rw-r--r--lib/Analysis/IPA/Andersens.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Analysis/IPA/Andersens.cpp b/lib/Analysis/IPA/Andersens.cpp
index 0a281c8945..cd90a6f22b 100644
--- a/lib/Analysis/IPA/Andersens.cpp
+++ b/lib/Analysis/IPA/Andersens.cpp
@@ -75,12 +75,17 @@ STATISTIC(NumIndirectCallees , "Number of indirect callees found");
namespace {
class VISIBILITY_HIDDEN Andersens : public ModulePass, public AliasAnalysis,
private InstVisitor<Andersens> {
+ public:
+ static const int ID; // Class identification, replacement for typeinfo
+ Andersens() : ModulePass((intptr_t)&ID) {}
+ private:
/// Node class - This class is used to represent a memory object in the
/// program, and is the primitive used to build the points-to graph.
class Node {
std::vector<Node*> Pointees;
Value *Val;
public:
+ static const unsigned ID; // Pass identifcation, replacement for typeid
Node() : Val(0) {}
Node *setValue(Value *V) {
assert(Val == 0 && "Value already set for this node!");
@@ -334,6 +339,7 @@ namespace {
void visitInstruction(Instruction &I);
};
+ const int Andersens::ID = 0;
RegisterPass<Andersens> X("anders-aa",
"Andersen's Interprocedural Alias Analysis");
RegisterAnalysisGroup<AliasAnalysis> Y(X);