Fix or remove code which seemed to think that the operand of a Constant
authorJay Foad <jay.foad@gmail.com>
Mon, 11 Apr 2011 09:48:55 +0000 (09:48 +0000)
committerJay Foad <jay.foad@gmail.com>
Mon, 11 Apr 2011 09:48:55 +0000 (09:48 +0000)
was always a User.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129272 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Constant.h
lib/Bitcode/Writer/ValueEnumerator.cpp

index 38045fc0c1d6caf12cf63d017d5731081b6c859d..5f32ce0ac5e2cd7532820c08b2b08e0bce690138 100644 (file)
@@ -47,10 +47,6 @@ protected:
     : User(ty, vty, Ops, NumOps) {}
 
   void destroyConstantImpl();
-  
-  void setOperand(unsigned i, Value *V) {
-    User::setOperand(i, V);
-  }
 public:
   /// isNullValue - Return true if this is the value that would be returned by
   /// getNullValue.
@@ -90,15 +86,6 @@ public:
   /// FIXME: This really should not be in VMCore.
   PossibleRelocationsTy getRelocationInfo() const;
   
-  // Specialize get/setOperand for Users as their operands are always
-  // constants or BasicBlocks as well.
-  User *getOperand(unsigned i) {
-    return static_cast<User*>(User::getOperand(i));
-  }
-  const User *getOperand(unsigned i) const {
-    return static_cast<const User*>(User::getOperand(i));
-  }
-  
   /// getVectorElements - This method, which is only valid on constant of vector
   /// type, returns the elements of the vector in the specified smallvector.
   /// This handles breaking down a vector undef into undef elements, etc.  For
index 05078caf5fa897c681e4b1b8d45379977519b0c3..54404cd03aa0322519e417abc04ab2c999506021 100644 (file)
@@ -423,7 +423,7 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) {
     // This constant may have operands, make sure to enumerate the types in
     // them.
     for (unsigned i = 0, e = C->getNumOperands(); i != e; ++i) {
-      const User *Op = C->getOperand(i);
+      const Value *Op = C->getOperand(i);
       
       // Don't enumerate basic blocks here, this happens as operands to
       // blockaddress.