diff options
author | Jay Foad <jay.foad@gmail.com> | 2011-06-21 10:33:19 +0000 |
---|---|---|
committer | Jay Foad <jay.foad@gmail.com> | 2011-06-21 10:33:19 +0000 |
commit | cd35e09a4a3c640b9da0b1dfe3548a605c929ae5 (patch) | |
tree | e30d6c21f872a780cbcf44458e2b70489803eb20 /lib/VMCore/User.cpp | |
parent | 69254f67a54656ebf88fe854d0e8bf7fc58abda6 (diff) |
Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/User.cpp')
-rw-r--r-- | lib/VMCore/User.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/VMCore/User.cpp b/lib/VMCore/User.cpp index 9601da7011..f01fa349ad 100644 --- a/lib/VMCore/User.cpp +++ b/lib/VMCore/User.cpp @@ -40,8 +40,10 @@ void User::replaceUsesOfWith(Value *From, Value *To) { //===----------------------------------------------------------------------===// Use *User::allocHungoffUses(unsigned N) const { - Use *Begin = static_cast<Use*>(::operator new(sizeof(Use) * N - + sizeof(Use::UserRef))); + // Allocate the array of Uses, followed by a pointer (with bottom bit set) to + // the User. + size_t size = N * sizeof(Use) + sizeof(Use::UserRef); + Use *Begin = static_cast<Use*>(::operator new(size)); Use *End = Begin + N; (void) new(End) Use::UserRef(const_cast<User*>(this), 1); return Use::initTags(Begin, End); |