From 09f162ca6a10446d6377b957f3a58ac92ce38306 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 1 May 2007 21:15:47 +0000 Subject: Do not use typeinfo to identify pass in pass manager. llvm-svn: 36632 --- llvm/lib/Transforms/Hello/Hello.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/lib/Transforms/Hello/Hello.cpp') diff --git a/llvm/lib/Transforms/Hello/Hello.cpp b/llvm/lib/Transforms/Hello/Hello.cpp index df8866279f2..d9af9df18b5 100644 --- a/llvm/lib/Transforms/Hello/Hello.cpp +++ b/llvm/lib/Transforms/Hello/Hello.cpp @@ -25,6 +25,9 @@ STATISTIC(HelloCounter, "Counts number of functions greeted"); namespace { // Hello - The first implementation, without getAnalysisUsage. struct Hello : public FunctionPass { + static const int ID; // Pass identifcation, replacement for typeid + Hello() : FunctionPass((intptr_t)&ID) {} + virtual bool runOnFunction(Function &F) { HelloCounter++; std::string fname = F.getName(); @@ -33,10 +36,15 @@ namespace { return false; } }; + + const int Hello::ID = 0; RegisterPass X("hello", "Hello World Pass"); // Hello2 - The second implementation with getAnalysisUsage implemented. struct Hello2 : public FunctionPass { + static const int ID; // Pass identifcation, replacement for typeid + Hello2() : FunctionPass((intptr_t)&ID) {} + virtual bool runOnFunction(Function &F) { HelloCounter++; std::string fname = F.getName(); @@ -50,6 +58,7 @@ namespace { AU.setPreservesAll(); }; }; + const int Hello2::ID = 0; RegisterPass Y("hello2", "Hello World Pass (with getAnalysisUsage implemented)"); } -- cgit v1.2.3