diff options
author | Devang Patel <dpatel@apple.com> | 2007-05-01 21:15:47 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-05-01 21:15:47 +0000 |
commit | 794fd75c67a2cdc128d67342c6d88a504d186896 (patch) | |
tree | 6b805aa4a576e9de6cbf096d2fb85063b3fb8fca /lib/Transforms/Hello/Hello.cpp | |
parent | e50fb9ac174b791047ffa8648443ab94b2097cd9 (diff) |
Do not use typeinfo to identify pass in pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Hello/Hello.cpp')
-rw-r--r-- | lib/Transforms/Hello/Hello.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Transforms/Hello/Hello.cpp b/lib/Transforms/Hello/Hello.cpp index df8866279f..d9af9df18b 100644 --- a/lib/Transforms/Hello/Hello.cpp +++ b/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<Hello> 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<Hello2> Y("hello2", "Hello World Pass (with getAnalysisUsage implemented)"); } |