diff options
author | Chris Lattner <sabre@nondot.org> | 2005-03-09 05:35:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-03-09 05:35:16 +0000 |
commit | fc4addafb51fe085bc6c9b0677e685f19ec75bfc (patch) | |
tree | 1682bd1bfff7e0325d09594057729ac277b43314 | |
parent | bac5b463965e0e07c7114c5466f35ede0d410e10 (diff) |
Use static_cast and #include Instructions.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20528 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Support/InstVisitor.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/include/llvm/Support/InstVisitor.h b/include/llvm/Support/InstVisitor.h index 6eef0f9a10..49b5ee109c 100644 --- a/include/llvm/Support/InstVisitor.h +++ b/include/llvm/Support/InstVisitor.h @@ -51,6 +51,7 @@ #define LLVM_SUPPORT_INSTVISITOR_H #include "llvm/Function.h" +#include "llvm/Instructions.h" #include "llvm/Module.h" namespace llvm { @@ -66,7 +67,8 @@ class TerminatorInst; class BinaryOperator; class AllocationInst; #define DELEGATE(CLASS_TO_VISIT) \ - return ((SubClass*)this)->visit##CLASS_TO_VISIT((CLASS_TO_VISIT&)I) + return static_cast<SubClass*>(this)-> \ + visit##CLASS_TO_VISIT(static_cast<CLASS_TO_VISIT&>(I)) template<typename SubClass, typename RetTy=void> @@ -81,21 +83,21 @@ public: template<class Iterator> void visit(Iterator Start, Iterator End) { while (Start != End) - ((SubClass*)this)->visit(*Start++); + static_cast<SubClass*>(this)->visit(*Start++); } // Define visitors for functions and basic blocks... // void visit(Module &M) { - ((SubClass*)this)->visitModule(M); + static_cast<SubClass*>(this)->visitModule(M); visit(M.begin(), M.end()); } void visit(Function &F) { - ((SubClass*)this)->visitFunction(F); + static_cast<SubClass*>(this)->visitFunction(F); visit(F.begin(), F.end()); } void visit(BasicBlock &BB) { - ((SubClass*)this)->visitBasicBlock(BB); + static_cast<SubClass*>(this)->visitBasicBlock(BB); visit(BB.begin(), BB.end()); } @@ -113,7 +115,9 @@ public: abort(); // Build the switch statement using the Instruction.def file... #define HANDLE_INST(NUM, OPCODE, CLASS) \ - case Instruction::OPCODE:return ((SubClass*)this)->visit##OPCODE((CLASS&)I); + case Instruction::OPCODE: return \ + static_cast<SubClass*>(this)-> \ + visit##OPCODE(static_cast<CLASS&>(I)); #include "llvm/Instruction.def" } } |