[llvm-commits] [llvm] r49534 - /llvm/branches/ggreif/use-diet/include/llvm/User.h

Gabor Greif ggreif at gmail.com
Fri Apr 11 08:40:12 PDT 2008


Author: ggreif
Date: Fri Apr 11 10:40:12 2008
New Revision: 49534

URL: http://llvm.org/viewvc/llvm-project?rev=49534&view=rev
Log:
make sure that the operand list is zapped on destruction

Modified:
    llvm/branches/ggreif/use-diet/include/llvm/User.h

Modified: llvm/branches/ggreif/use-diet/include/llvm/User.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/use-diet/include/llvm/User.h?rev=49534&r1=49533&r2=49534&view=diff

==============================================================================
--- llvm/branches/ggreif/use-diet/include/llvm/User.h (original)
+++ llvm/branches/ggreif/use-diet/include/llvm/User.h Fri Apr 11 10:40:12 2008
@@ -239,11 +239,14 @@
   User(const Type *Ty, unsigned vty, Use *OpList, unsigned NumOps)
     : Value(Ty, vty), OperandList(OpList), NumOperands(NumOps) {}
 public:
+  ~User() {
+    Use::zap(OperandList, OperandList + NumOperands);
+  }
   void operator delete(void *Usr) {
     User *Start = static_cast<User*>(Usr);
     Use *Storage = static_cast<Use*>(Usr) - Start->NumOperands;
     if (Storage == Start->OperandList)
-      ::operator delete(Storage); // FIXME: destructors of Uses?
+      ::operator delete(Storage);
     else ::operator delete(Usr);
   }
 public:
@@ -255,7 +258,7 @@
   }
   inline Use *allocHangoffUses(unsigned) const;
   void dropHungoffUses(Use *U) {
-    U->zap(U, U->getImpliedUser());
+    Use::zap(U, U->getImpliedUser());
   }
 
   Value *getOperand(unsigned i) const {





More information about the llvm-commits mailing list