]> granicus.if.org Git - clang/commit
SourceManager, IdentifierTable, Selectors are now serialized in their own
authorTed Kremenek <kremenek@apple.com>
Wed, 14 Nov 2007 17:46:35 +0000 (17:46 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 14 Nov 2007 17:46:35 +0000 (17:46 +0000)
commitb899ad2265d3cba28edc74a7ade89c33cf8fdeab
treefa9cc5edd93ea5b72f6b8596286651f34e39e44b
parentfde1857bbd04d0034e5df2563798fd8a8e80f26c
SourceManager, IdentifierTable, Selectors are now serialized in their own
block separate from ASTContext. This block is serialized out AFTER writing out
ASTContext, but deserialized BEFORE reading in ASTContext. This permits the
optimization of the serialization of the IdentifierTable where we only write
out identifiers that are used.

This was needed because TagDecls are owned by Types, and TagDecls contain
identifiers. Thus types need to be written out first to register with the
serializer any identifiers they refer to (and hence need to be serialized out
with IdentifierTable).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44125 91177308-0d34-0410-b5e6-96231b3b80d8
Driver/SerializationTest.cpp