[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