[llvm-commits] [llvm] r49698 - in /llvm/branches/ggreif/use-diet/include/llvm: Use.h Value.h

Gabor Greif ggreif at gmail.com
Mon Apr 14 16:24:36 PDT 2008


Author: ggreif
Date: Mon Apr 14 18:24:36 2008
New Revision: 49698

URL: http://llvm.org/viewvc/llvm-project?rev=49698&view=rev
Log:
fix bookkeeping bug when swapping Uses. thanks for the pills, sabre ;-)

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

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

==============================================================================
--- llvm/branches/ggreif/use-diet/include/llvm/Use.h (original)
+++ llvm/branches/ggreif/use-diet/include/llvm/Use.h Mon Apr 14 18:24:36 2008
@@ -18,6 +18,7 @@
 
 #include "llvm/Support/Casting.h"
 #include "llvm/ADT/iterator"
+#include <algorithm>
 
 namespace llvm {
 
@@ -35,9 +36,11 @@
 public:
   inline void init(Value *V, User *U);
 
+private:
+  template <typename U> friend void std::swap(U&, U&);
 /*  Use(Value *V, User *U) { init(V, U); }
-  Use(const Use &U) { init(U.get(), U.U); }
-*/
+ */  Use(const Use &U) { init(U.get(), 0); }
+
   inline ~Use() {
     if (get()) removeFromList();
   }

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

==============================================================================
--- llvm/branches/ggreif/use-diet/include/llvm/Value.h (original)
+++ llvm/branches/ggreif/use-diet/include/llvm/Value.h Mon Apr 14 18:24:36 2008
@@ -226,7 +226,7 @@
 void Use::init(Value *V, User *user) {
   Val = transferTag(V);
   U = user;
-  assert(U == getUser() && "Use::init discrepancy?");
+  assert((!U || U == getUser()) && "Use::init discrepancy?");
   if (V) V->addUse(*this);
 }
 





More information about the llvm-commits mailing list