From 13b03586d2911fb6ba324c1fca94c2e2a23444be Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 4 Aug 2004 02:43:00 +0000 Subject: [PATCH] Now that ConstantPointerRef is gone, it is the case that all operands of constants are themselves constants. This should allow us to reduce a significant amount of casting in the sourcebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15459 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Constant.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/llvm/Constant.h b/include/llvm/Constant.h index fda1005ef18..c765503736e 100644 --- a/include/llvm/Constant.h +++ b/include/llvm/Constant.h @@ -40,6 +40,18 @@ public: virtual void print(std::ostream &O) const; + // Specialize get/setOperand for Constant's as their operands are always + // constants as well. + Constant *getOperand(unsigned i) { + return static_cast(User::getOperand(i)); + } + const Constant *getOperand(unsigned i) const { + return static_cast(User::getOperand(i)); + } + void setOperand(unsigned i, Constant *C) { + User::setOperand(i, C); + } + /// destroyConstant - Called if some element of this constant is no longer /// valid. At this point only other constants may be on the use_list for this /// constant. Any constants on our Use list must also be destroy'd. The