diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-10-25 23:40:35 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-10-25 23:40:35 +0000 |
commit | 3bd9dcc08f1fc3431b6efdafcc005815141462b7 (patch) | |
tree | 0df5fa64d788fc143badef0b673244a5a33fbc90 /include/llvm/Bitcode | |
parent | 8df77a9e0fbe32bd519ac2fd16ba28298a110a69 (diff) |
Updated backpatching during object deserialization to support "smart"
pointers that employ unused bits in a pointer to store extra data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43373 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode')
-rw-r--r-- | include/llvm/Bitcode/Deserialize.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/llvm/Bitcode/Deserialize.h b/include/llvm/Bitcode/Deserialize.h index 164c70a9af..6eaba51ecc 100644 --- a/include/llvm/Bitcode/Deserialize.h +++ b/include/llvm/Bitcode/Deserialize.h @@ -20,6 +20,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" #include "llvm/Support/Allocator.h" +#include "llvm/Support/DataTypes.h" #include <vector> namespace llvm { @@ -40,8 +41,11 @@ class Deserializer { struct BPatchNode { BPatchNode* const Next; - void*& PtrRef; - BPatchNode(BPatchNode* n, void*& pref) : Next(n), PtrRef(pref) {} + uintptr_t& PtrRef; + BPatchNode(BPatchNode* n, void*& pref) + : Next(n), PtrRef(reinterpret_cast<uintptr_t&>(pref)) { + PtrRef = 0; + } }; struct BPatchEntry { |