From: Ted Kremenek Date: Thu, 13 Dec 2007 06:28:13 +0000 (+0000) Subject: Updated serialization of ParmVarDecl to serialize out objcDeclQualifier. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=137bd91e8ef5fb407dce910704101bf730b13696;p=clang Updated serialization of ParmVarDecl to serialize out objcDeclQualifier. Previously this field was serialized out in VarDecl (a parent class), but now the field belongs to ParmVarDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44989 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/DeclSerialization.cpp b/AST/DeclSerialization.cpp index f2ed75b4b5..cc29210f4f 100644 --- a/AST/DeclSerialization.cpp +++ b/AST/DeclSerialization.cpp @@ -146,15 +146,11 @@ void ValueDecl::ReadInRec(Deserializer& D) { void VarDecl::EmitInRec(Serializer& S) const { ValueDecl::EmitInRec(S); S.EmitInt(getStorageClass()); // From VarDecl. - // FIXME: This is now in ParmVarDecl - // S.EmitInt(getObjcDeclQualifier()); // From VarDecl. } void VarDecl::ReadInRec(Deserializer& D) { ValueDecl::ReadInRec(D); SClass = static_cast(D.ReadInt()); // From VarDecl. - // FIXME: This is now in ParmVarDecl - // objcDeclQualifier = static_cast(D.ReadInt()); // VarDecl. } //===------------------------------------------------------------===// @@ -219,12 +215,18 @@ FileVarDecl* FileVarDecl::CreateImpl(Deserializer& D) { // ParmDecl Serialization. //===----------------------------------------------------------------------===// +void ParmVarDecl::EmitImpl(llvm::Serializer& S) const { + VarDecl::EmitImpl(S); + S.EmitInt(getObjcDeclQualifier()); // From ParmVarDecl. +} + ParmVarDecl* ParmVarDecl::CreateImpl(Deserializer& D) { ParmVarDecl* decl = new ParmVarDecl(SourceLocation(),NULL,QualType(),None,NULL); decl->VarDecl::ReadImpl(D); - + decl->objcDeclQualifier = static_cast(D.ReadInt()); + return decl; } diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h index 8fd68295fb..efa79d5372 100644 --- a/include/clang/AST/Decl.h +++ b/include/clang/AST/Decl.h @@ -410,6 +410,9 @@ private: ObjcDeclQualifier objcDeclQualifier : 6; protected: + /// EmitImpl - Serialize this ParmVarDecl. Called by Decl::Emit. + virtual void EmitImpl(llvm::Serializer& S) const; + /// CreateImpl - Deserialize a ParmVarDecl. Called by Decl::Create. static ParmVarDecl* CreateImpl(llvm::Deserializer& D);