Add support for indirect calls
authorChris Lattner <sabre@nondot.org>
Sat, 13 Oct 2001 06:23:14 +0000 (06:23 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 13 Oct 2001 06:23:14 +0000 (06:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@742 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/iOther.h

index 1351e71cea0c96e37e99c51a932aa67ff922057a..52d75629e7cb92a220cadd8894f7cbac185feeae 100644 (file)
@@ -138,21 +138,24 @@ public:
 class CallInst : public Instruction {
   CallInst(const CallInst &CI);
 public:
-  CallInst(Method *M, const vector<Value*> &params, const string &Name = "");
+  CallInst(Value *Meth, const vector<Value*> &params, 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) {