Add a couple of virtual functions to support subclass ConstantExpr.

Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr.   This is why isConstantExpr() is needed.

llvm-svn: 2890
This commit is contained in:
Vikram S. Adve 2002-07-14 22:46:32 +00:00
parent dafe6f20de
commit db83123c94

View File

@ -37,11 +37,20 @@ public:
virtual void print(std::ostream &O) const;
// isConstantExpr - Return true if this is a ConstantExpr
virtual bool isConstantExpr() const { return false; }
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const Constant *) { return true; }
static inline bool classof(const Value *V) {
return V->getValueType() == Value::ConstantVal;
}
// WARNING: Only to be used by Bytecode & Assembly Parsers! USER CODE SHOULD
// NOT USE THIS!!
// Returns the number of uses of OldV that were replaced.
virtual unsigned mutateReferences(Value* OldV, Value *NewV) { return 0; }
// END WARNING!!
};
#endif