diff --git a/clang/include/clang/Serialization/ASTBitCodes.h b/clang/include/clang/Serialization/ASTBitCodes.h index cce6916b4e37c685e55e7ea471fcc947d28434cd..a4b6b8f45e7e92727f7c15d04ab07651401b5903 100644 --- a/clang/include/clang/Serialization/ASTBitCodes.h +++ b/clang/include/clang/Serialization/ASTBitCodes.h @@ -366,10 +366,10 @@ namespace clang { /// \brief Record code for an update to the TU's lexically contained /// declarations. TU_UPDATE_LEXICAL = 28, - - /// \brief Record code for an update to first decls pointing to the - /// latest redeclarations. - REDECLS_UPDATE_LATEST = 29, + + /// \brief Record code for the array describing the first/last local + /// redeclarations of each entity. + LOCAL_REDECLARATIONS = 29, /// \brief Record code for declarations that Sema keeps references of. SEMA_DECL_REFS = 30, @@ -445,18 +445,14 @@ namespace clang { /// \brief Record code for ObjC categories in a module that are chained to /// an interface. - OBJC_CHAINED_CATEGORIES, + OBJC_CHAINED_CATEGORIES = 49, /// \brief Record code for a file sorted array of DeclIDs in a module. - FILE_SORTED_DECLS, + FILE_SORTED_DECLS = 50, /// \brief Record code for an array of all of the (sub)modules that were /// imported by the AST file. - IMPORTED_MODULES, - - /// \brief Record code for the array describing the first/last local - /// redeclarations of each entity. - LOCAL_REDECLARATIONS + IMPORTED_MODULES = 51 }; /// \brief Record types used within a source manager block. diff --git a/clang/include/clang/Serialization/ASTReader.h b/clang/include/clang/Serialization/ASTReader.h index bbeacb4f22dbcea589271ade8a515ff78fe93ca5..fd0a897518fa38079ca8b744866607ad7df692ed 100644 --- a/clang/include/clang/Serialization/ASTReader.h +++ b/clang/include/clang/Serialization/ASTReader.h @@ -333,12 +333,6 @@ private: /// declarations that have not yet been linked to their definitions. llvm::SmallPtrSet PendingDefinitions; - typedef llvm::DenseMap - FirstLatestDeclIDMap; - /// \brief Map of first declarations from a chained PCH that point to the - /// most recent declarations in another AST file. - FirstLatestDeclIDMap FirstLatestDeclIDs; - /// \brief Set of ObjC interfaces that have categories chained to them in /// other modules. llvm::DenseSet ObjCChainedCategoriesInterfaces; diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index bc4fa668b30e7a511b55b86152e27c7d8fef28d9..1efc95408b37fa0bf4f06d6add8e0b224c428911 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -1882,16 +1882,6 @@ ASTReader::ReadASTBlock(ModuleFile &F) { break; } - case REDECLS_UPDATE_LATEST: { - assert(Record.size() % 2 == 0 && "Expected pairs of DeclIDs"); - for (unsigned i = 0, e = Record.size(); i < e; /* in loop */) { - DeclID First = ReadDeclID(F, Record, i); - DeclID Latest = ReadDeclID(F, Record, i); - FirstLatestDeclIDs[First] = Latest; - } - break; - } - case LANGUAGE_OPTIONS: if (ParseLanguageOptions(Record) && !DisableValidation) return IgnorePCH; diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index e1af601614d3e4d36848255ebf37c236f618dffb..1776b97bb03c487ef3f7388f770619622c8f3b1e 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -778,7 +778,7 @@ void ASTWriter::WriteBlockInfoBlock() { RECORD(IMPORTS); RECORD(REFERENCED_SELECTOR_POOL); RECORD(TU_UPDATE_LEXICAL); - RECORD(REDECLS_UPDATE_LATEST); + RECORD(LOCAL_REDECLARATIONS); RECORD(SEMA_DECL_REFS); RECORD(WEAK_UNDECLARED_IDENTIFIERS); RECORD(PENDING_IMPLICIT_INSTANTIATIONS); @@ -798,8 +798,10 @@ void ASTWriter::WriteBlockInfoBlock() { RECORD(KNOWN_NAMESPACES); RECORD(MODULE_OFFSET_MAP); RECORD(SOURCE_MANAGER_LINE_TABLE); - RECORD(LOCAL_REDECLARATIONS); - + RECORD(OBJC_CHAINED_CATEGORIES); + RECORD(FILE_SORTED_DECLS); + RECORD(IMPORTED_MODULES); + // SourceManager Block. BLOCK(SOURCE_MANAGER_BLOCK); RECORD(SM_SLOC_FILE_ENTRY); @@ -3313,19 +3315,6 @@ void ASTWriter::WriteASTCore(Sema &SemaRef, MemorizeStatCalls *StatCalls, Stream.EmitRecord(SPECIAL_TYPES, SpecialTypes); - /// Build a record containing first declarations from a chained PCH and the - /// most recent declarations in this AST that they point to. - RecordData FirstLatestDeclIDs; - for (FirstLatestDeclMap::iterator I = FirstLatestDecls.begin(), - E = FirstLatestDecls.end(); - I != E; ++I) { - AddDeclRef(I->first, FirstLatestDeclIDs); - AddDeclRef(I->second, FirstLatestDeclIDs); - } - - if (!FirstLatestDeclIDs.empty()) - Stream.EmitRecord(REDECLS_UPDATE_LATEST, FirstLatestDeclIDs); - // Write the record containing external, unnamed definitions. if (!ExternalDefinitions.empty()) Stream.EmitRecord(EXTERNAL_DEFINITIONS, ExternalDefinitions);