summaryrefslogtreecommitdiff
path: root/include/llvm/Support/InstVisitor.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-03-09 05:35:16 +0000
committerChris Lattner <sabre@nondot.org>2005-03-09 05:35:16 +0000
commitfc4addafb51fe085bc6c9b0677e685f19ec75bfc (patch)
tree1682bd1bfff7e0325d09594057729ac277b43314 /include/llvm/Support/InstVisitor.h
parentbac5b463965e0e07c7114c5466f35ede0d410e10 (diff)
downloadllvm-fc4addafb51fe085bc6c9b0677e685f19ec75bfc.tar.gz
llvm-fc4addafb51fe085bc6c9b0677e685f19ec75bfc.tar.bz2
llvm-fc4addafb51fe085bc6c9b0677e685f19ec75bfc.tar.xz
Use static_cast and #include Instructions.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20528 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/InstVisitor.h')
-rw-r--r--include/llvm/Support/InstVisitor.h16
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"
}
}