diff options
-rw-r--r-- | include/llvm/iOther.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/include/llvm/iOther.h b/include/llvm/iOther.h index 1351e71cea..52d75629e7 100644 --- a/include/llvm/iOther.h +++ b/include/llvm/iOther.h @@ -138,21 +138,24 @@ public: class CallInst : public Instruction { CallInst(const CallInst &CI); public: - CallInst(Method *M, const vector<Value*> ¶ms, const string &Name = ""); + CallInst(Value *Meth, const vector<Value*> ¶ms, const string &Name = ""); virtual const char *getOpcodeName() const { return "call"; } virtual Instruction *clone() const { return new CallInst(*this); } bool hasSideEffects() const { return true; } - const Method *getCalledMethod() const { - return cast<Method>(Operands[0]); + return dyn_cast<Method>(Operands[0]); } Method *getCalledMethod() { - return cast<Method>(Operands[0]); + return dyn_cast<Method>(Operands[0]); } + // getCalledValue - Get a pointer to a method that is invoked by this inst. + inline const Value *getCalledValue() const { return Operands[0]; } + inline Value *getCalledValue() { return Operands[0]; } + // Methods for support type inquiry through isa, cast, and dyn_cast: static inline bool classof(const CallInst *) { return true; } static inline bool classof(const Instruction *I) { |