From: Argyrios Kyrtzidis Date: Thu, 9 Feb 2012 07:46:54 +0000 (+0000) Subject: [PCH] Add some comments, per Ted's request. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=621fc4b47f11585120e3d2eed32d1f46e2063c62;p=clang [PCH] Add some comments, per Ted's request. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150162 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp index e2f4ae3a9b..883edba5e3 100644 --- a/lib/Serialization/ASTReaderDecl.cpp +++ b/lib/Serialization/ASTReaderDecl.cpp @@ -344,6 +344,8 @@ void ASTDeclReader::VisitDecl(Decl *D) { } else { DeclContext *SemaDC = ReadDeclAs(Record, Idx); DeclContext *LexicalDC = ReadDeclAs(Record, Idx); + // Avoid calling setLexicalDeclContext() directly because it uses + // Decl::getASTContext() internally which is unsafe during derialization. D->setDeclContextsImpl(SemaDC, LexicalDC, Reader.getContext()); } D->setLocation(Reader.ReadSourceLocation(F, RawLocation)); @@ -351,6 +353,8 @@ void ASTDeclReader::VisitDecl(Decl *D) { if (Record[Idx++]) { // hasAttrs AttrVec Attrs; Reader.ReadAttributes(F, Attrs, Record, Idx); + // Avoid calling setAttrs() directly because it uses Decl::getASTContext() + // internally which is unsafe during derialization. D->setAttrsImpl(Attrs, Reader.getContext()); } D->setImplicit(Record[Idx++]);