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 | 09f162ca6a10446d6377b957f3a58ac92ce38306 (patch) | |
tree | b41e816449956582e447ab616707e1afbf1a88fe /llvm/lib/Transforms/Hello | |
parent | a612049dd849d1e659eeaeefbcf82147af7f669f (diff) | |
download | bcm5719-llvm-09f162ca6a10446d6377b957f3a58ac92ce38306.tar.gz bcm5719-llvm-09f162ca6a10446d6377b957f3a58ac92ce38306.zip |
Do not use typeinfo to identify pass in pass manager.
llvm-svn: 36632
Diffstat (limited to 'llvm/lib/Transforms/Hello')
-rw-r--r-- | llvm/lib/Transforms/Hello/Hello.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
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<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)"); } |