diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-04-14 00:50:18 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-04-14 00:50:18 +0000 |
commit | 72e50fe4acbb60edd70e0526b57feebf1f411d6f (patch) | |
tree | 6b70e88cc6ce88df34867e2c8014bf1eac3d8f4f | |
parent | f11e099052e75ccd467e83a566b11307a76527cd (diff) | |
download | bcm5719-llvm-72e50fe4acbb60edd70e0526b57feebf1f411d6f.tar.gz bcm5719-llvm-72e50fe4acbb60edd70e0526b57feebf1f411d6f.zip |
[modules] Store the location of the lexical update record in a decl update as
an offset from the current record rather than as an absolute bit number. This
gives a minor .pcm file size reduction.
llvm-svn: 266269
-rw-r--r-- | clang/lib/Serialization/ASTReaderDecl.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 03d1b115d02..d81d73d4ba7 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -3767,7 +3767,7 @@ void ASTDeclReader::UpdateDecl(Decl *D, ModuleFile &ModuleFile, ReadCXXRecordDefinition(RD, /*Update*/true); // Visible update is handled separately. - uint64_t LexicalOffset = Record[Idx++]; + uint64_t LexicalOffset = ReadLocalOffset(Record, Idx); if (!HadRealDefinition && LexicalOffset) { Reader.ReadLexicalDeclContextStorage(ModuleFile, ModuleFile.DeclsCursor, LexicalOffset, RD); diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 2fec5c23493..5b5ecb177de 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -4661,8 +4661,7 @@ void ASTWriter::WriteDeclUpdatesBlocks(RecordDataImpl &OffsetsRecord) { auto *RD = cast<CXXRecordDecl>(D); UpdatedDeclContexts.insert(RD->getPrimaryContext()); Record.AddCXXDefinitionData(RD); - // FIXME: Use AddOffset here. - Record.push_back(WriteDeclContextLexicalBlock( + Record.AddOffset(WriteDeclContextLexicalBlock( *Context, const_cast<CXXRecordDecl *>(RD))); // This state is sometimes updated by template instantiation, when we |