diff options
Diffstat (limited to 'lib/AST/TypeSerialization.cpp')
-rw-r--r-- | lib/AST/TypeSerialization.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/AST/TypeSerialization.cpp b/lib/AST/TypeSerialization.cpp index b336722763..db93e4b103 100644 --- a/lib/AST/TypeSerialization.cpp +++ b/lib/AST/TypeSerialization.cpp @@ -30,15 +30,17 @@ void QualType::Emit(Serializer& S) const { } QualType QualType::ReadVal(Deserializer& D) { - QualType Q; - D.ReadUIntPtr(Q.ThePtr,false); - Q.ThePtr |= D.ReadInt(); - return Q; + uintptr_t Val; + D.ReadUIntPtr(Val, false); + return QualType(reinterpret_cast<Type*>(Val), D.ReadInt()); } void QualType::ReadBackpatch(Deserializer& D) { - D.ReadUIntPtr(ThePtr,true); - ThePtr |= D.ReadInt(); + uintptr_t Val; + D.ReadUIntPtr(Val, false); + + Value.setPointer(reinterpret_cast<Type*>(Val)); + Value.setInt(D.ReadInt()); } //===----------------------------------------------------------------------===// |