Index: cfe/trunk/lib/Serialization/ASTWriter.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTWriter.cpp +++ cfe/trunk/lib/Serialization/ASTWriter.cpp @@ -1,4 +1,4 @@ -//===--- ASTWriter.cpp - AST File Writer ----------------------------------===// +//===--- ASTWriter.cpp - AST File Writer ------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -60,6 +60,7 @@ #include #include #include + using namespace clang; using namespace clang::serialization; @@ -102,7 +103,7 @@ #define ABSTRACT_TYPE(Class, Base) #include "clang/AST/TypeNodes.def" }; -} +} // end anonymous namespace void ASTTypeWriter::VisitBuiltinType(const BuiltinType *T) { llvm_unreachable("Built-in types are never serialized"); @@ -333,9 +334,8 @@ Record.push_back(T->isDependentType()); Writer.AddTemplateName(T->getTemplateName(), Record); Record.push_back(T->getNumArgs()); - for (TemplateSpecializationType::iterator ArgI = T->begin(), ArgE = T->end(); - ArgI != ArgE; ++ArgI) - Writer.AddTemplateArgument(*ArgI, Record); + for (const auto &ArgI : *T) + Writer.AddTemplateArgument(ArgI, Record); Writer.AddTypeRef(T->isTypeAlias() ? T->getAliasedType() : T->isCanonicalUnqualified() ? QualType() : T->getCanonicalTypeInternal(), @@ -385,9 +385,8 @@ Writer.AddNestedNameSpecifier(T->getQualifier(), Record); Writer.AddIdentifierRef(T->getIdentifier(), Record); Record.push_back(T->getNumArgs()); - for (DependentTemplateSpecializationType::iterator - I = T->begin(), E = T->end(); I != E; ++I) - Writer.AddTemplateArgument(*I, Record); + for (const auto &I : *T) + Writer.AddTemplateArgument(I, Record); Code = TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION; } @@ -466,7 +465,7 @@ void VisitFunctionTypeLoc(FunctionTypeLoc TyLoc); }; -} +} // end anonymous namespace void TypeLocWriter::VisitQualifiedTypeLoc(QualifiedTypeLoc TL) { // nothing to do @@ -1182,7 +1181,7 @@ RecordData Record; // Metadata - BitCodeAbbrev *MetadataAbbrev = new BitCodeAbbrev(); + auto *MetadataAbbrev = new BitCodeAbbrev(); MetadataAbbrev->Add(BitCodeAbbrevOp(METADATA)); MetadataAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 16)); // Major MetadataAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 16)); // Minor @@ -1215,7 +1214,7 @@ } // Module name - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(MODULE_NAME)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // Name unsigned AbbrevCode = Stream.EmitAbbrev(Abbrev); @@ -1235,7 +1234,7 @@ .ModuleMapFileHomeIsCwd || WritingModule->Directory->getName() != StringRef(".")) { // Module directory. - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(MODULE_DIRECTORY)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // Directory unsigned AbbrevCode = Stream.EmitAbbrev(Abbrev); @@ -1319,11 +1318,8 @@ // Comment options. Record.push_back(LangOpts.CommentOpts.BlockCommandNames.size()); - for (CommentOptions::BlockCommandNamesTy::const_iterator - I = LangOpts.CommentOpts.BlockCommandNames.begin(), - IEnd = LangOpts.CommentOpts.BlockCommandNames.end(); - I != IEnd; ++I) { - AddString(*I, Record); + for (const auto &I : LangOpts.CommentOpts.BlockCommandNames) { + AddString(I, Record); } Record.push_back(LangOpts.CommentOpts.ParseAllComments); @@ -1441,7 +1437,7 @@ // Original file name and file ID SourceManager &SM = Context.getSourceManager(); if (const FileEntry *MainFile = SM.getFileEntryForID(SM.getMainFileID())) { - BitCodeAbbrev *FileAbbrev = new BitCodeAbbrev(); + auto *FileAbbrev = new BitCodeAbbrev(); FileAbbrev->Add(BitCodeAbbrevOp(ORIGINAL_FILE)); FileAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // File ID FileAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // File name @@ -1459,7 +1455,7 @@ // Original PCH directory if (!OutputFile.empty() && OutputFile != "-") { - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(ORIGINAL_PCH_DIR)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // File name unsigned AbbrevCode = Stream.EmitAbbrev(Abbrev); @@ -1488,7 +1484,7 @@ bool IsTransient; bool BufferOverridden; }; -} +} // end anonymous namespace void ASTWriter::WriteInputFiles(SourceManager &SourceMgr, HeaderSearchOptions &HSOpts, @@ -1497,7 +1493,7 @@ Stream.EnterSubblock(INPUT_FILES_BLOCK_ID, 4); // Create input-file abbreviation. - BitCodeAbbrev *IFAbbrev = new BitCodeAbbrev(); + auto *IFAbbrev = new BitCodeAbbrev(); IFAbbrev->Add(BitCodeAbbrevOp(INPUT_FILE)); IFAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // ID IFAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 12)); // Size @@ -1536,10 +1532,7 @@ unsigned UserFilesNum = 0; // Write out all of the input files. std::vector InputFileOffsets; - for (std::deque::iterator - I = SortedFiles.begin(), E = SortedFiles.end(); I != E; ++I) { - const InputFileEntry &Entry = *I; - + for (const auto &Entry : SortedFiles) { uint32_t &InputFileID = InputFileIDs[Entry.File]; if (InputFileID != 0) continue; // already recorded this file. @@ -1568,7 +1561,7 @@ Stream.ExitBlock(); // Create input file offsets abbreviation. - BitCodeAbbrev *OffsetsAbbrev = new BitCodeAbbrev(); + auto *OffsetsAbbrev = new BitCodeAbbrev(); OffsetsAbbrev->Add(BitCodeAbbrevOp(INPUT_FILE_OFFSETS)); OffsetsAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // # input files OffsetsAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // # non-system @@ -1590,7 +1583,8 @@ /// file. static unsigned CreateSLocFileAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(SM_SLOC_FILE_ENTRY)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Offset Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Include location @@ -1608,7 +1602,8 @@ /// buffer. static unsigned CreateSLocBufferAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(SM_SLOC_BUFFER_ENTRY)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Offset Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Include location @@ -1622,7 +1617,8 @@ /// buffer's blob. static unsigned CreateSLocBufferBlobAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(SM_SLOC_BUFFER_BLOB)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // Blob return Stream.EmitAbbrev(Abbrev); @@ -1632,7 +1628,8 @@ /// expansion. static unsigned CreateSLocExpansionAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(SM_SLOC_EXPANSION_ENTRY)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Offset Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Spelling location @@ -1811,7 +1808,8 @@ // Create a blob abbreviation using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(HEADER_SEARCH_TABLE)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); @@ -1963,7 +1961,8 @@ // Write the source-location offsets table into the AST block. This // table is used for lazily loading source-location information. using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(SOURCE_LOCATION_OFFSETS)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 16)); // # of slocs Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 16)); // total size @@ -2001,25 +2000,22 @@ Record.push_back(0); // Emit the line entries - for (LineTableInfo::iterator L = LineTable.begin(), LEnd = LineTable.end(); - L != LEnd; ++L) { + for (const auto &L : LineTable) { // Only emit entries for local files. - if (L->first.ID < 0) + if (L.first.ID < 0) continue; // Emit the file ID - Record.push_back(L->first.ID); + Record.push_back(L.first.ID); // Emit the line entries - Record.push_back(L->second.size()); - for (std::vector::iterator LE = L->second.begin(), - LEEnd = L->second.end(); - LE != LEEnd; ++LE) { - Record.push_back(LE->FileOffset); - Record.push_back(LE->LineNo); - Record.push_back(FilenameMap[LE->FilenameID]); - Record.push_back((unsigned)LE->FileKind); - Record.push_back(LE->IncludeOffset); + Record.push_back(L.second.size()); + for (const auto &LE : L.second) { + Record.push_back(LE.FileOffset); + Record.push_back(LE.LineNo); + Record.push_back(FilenameMap[LE.FilenameID]); + Record.push_back((unsigned)LE.FileKind); + Record.push_back(LE.IncludeOffset); } } @@ -2221,6 +2217,7 @@ // Write the offsets table for macro IDs. using namespace llvm; + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(MACRO_OFFSET)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // # of macros @@ -2251,7 +2248,7 @@ // Set up the abbreviation for unsigned InclusionAbbrev = 0; { - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(PPD_INCLUSION_DIRECTIVE)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // filename length Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // in quotes @@ -2275,7 +2272,7 @@ PreprocessedEntityOffsets.push_back( PPEntityOffset((*E)->getSourceRange(), Stream.GetCurrentBitNo())); - if (MacroDefinitionRecord *MD = dyn_cast(*E)) { + if (auto *MD = dyn_cast(*E)) { // Record this macro definition's ID. MacroDefinitions[MD] = NextPreprocessorEntityID; @@ -2284,7 +2281,7 @@ continue; } - if (MacroExpansion *ME = dyn_cast(*E)) { + if (auto *ME = dyn_cast(*E)) { Record.push_back(ME->isBuiltinMacro()); if (ME->isBuiltinMacro()) AddIdentifierRef(ME->getName(), Record); @@ -2294,7 +2291,7 @@ continue; } - if (InclusionDirective *ID = dyn_cast(*E)) { + if (auto *ID = dyn_cast(*E)) { Record.push_back(PPD_INCLUSION_DIRECTIVE); Record.push_back(ID->getFileName().size()); Record.push_back(ID->wasInQuotes()); @@ -2320,7 +2317,8 @@ // Write the offsets table for identifier IDs. using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(PPD_ENTITIES_OFFSETS)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // first pp entity Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); @@ -2362,8 +2360,7 @@ /// given module). static unsigned getNumberOfModules(Module *Mod) { unsigned ChildModules = 0; - for (Module::submodule_iterator Sub = Mod->submodule_begin(), - SubEnd = Mod->submodule_end(); + for (auto Sub = Mod->submodule_begin(), SubEnd = Mod->submodule_end(); Sub != SubEnd; ++Sub) ChildModules += getNumberOfModules(*Sub); @@ -2376,7 +2373,8 @@ // Write the abbreviations needed for the submodules block. using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(SUBMODULE_DEFINITION)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // ID Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Parent @@ -2632,11 +2630,10 @@ if (DiagStateID == 0) { DiagStateID = ++CurrID; - for (DiagnosticsEngine::DiagState::const_iterator - I = point.State->begin(), E = point.State->end(); I != E; ++I) { - if (I->second.isPragma()) { - Record.push_back(I->first); - Record.push_back((unsigned)I->second.getSeverity()); + for (const auto &I : *(point.State)) { + if (I.second.isPragma()) { + Record.push_back(I.first); + Record.push_back((unsigned)I.second.getSeverity()); } } Record.push_back(-1); // mark the end of the diag/map pairs for this @@ -2655,7 +2652,7 @@ // Create a blob abbreviation for the C++ ctor initializer offsets. using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(CXX_CTOR_INITIALIZERS_OFFSETS)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // size Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); @@ -2675,7 +2672,7 @@ // Create a blob abbreviation for the C++ base specifiers offsets. using namespace llvm; - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(CXX_BASE_SPECIFIER_OFFSETS)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // size Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); @@ -2771,7 +2768,7 @@ using namespace llvm; // Write the type offsets array - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(TYPE_OFFSET)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // # of types Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // base type index @@ -2814,7 +2811,7 @@ FileGroupedDeclIDs.push_back(LocDeclEntry.second); } - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(FILE_SORTED_DECLS)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); @@ -2828,14 +2825,12 @@ Stream.EnterSubblock(COMMENTS_BLOCK_ID, 3); ArrayRef RawComments = Context->Comments.getComments(); RecordData Record; - for (ArrayRef::iterator I = RawComments.begin(), - E = RawComments.end(); - I != E; ++I) { + for (const auto *I : RawComments) { Record.clear(); - AddSourceRange((*I)->getSourceRange(), Record); - Record.push_back((*I)->getKind()); - Record.push_back((*I)->isTrailingComment()); - Record.push_back((*I)->isAlmostTrailingComment()); + AddSourceRange(I->getSourceRange(), Record); + Record.push_back(I->getKind()); + Record.push_back(I->isTrailingComment()); + Record.push_back(I->isAlmostTrailingComment()); Stream.EmitRecord(COMMENTS_RAW_COMMENT, Record); } Stream.ExitBlock(); @@ -3022,7 +3017,7 @@ } // Create a blob abbreviation - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(METHOD_POOL)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); @@ -3280,10 +3275,8 @@ // where the user adds new macro definitions when building the AST // file. SmallVector IIs; - for (IdentifierTable::iterator ID = PP.getIdentifierTable().begin(), - IDEnd = PP.getIdentifierTable().end(); - ID != IDEnd; ++ID) - IIs.push_back(ID->second); + for (const auto &ID : PP.getIdentifierTable()) + IIs.push_back(ID.second); // Sort the identifiers lexicographically before getting them references so // that their order is stable. std::sort(IIs.begin(), IIs.end(), llvm::less_ptr()); @@ -3295,7 +3288,7 @@ // for identifiers that appear here for the first time. IdentifierOffsets.resize(NextIdentID - FirstIdentID); for (auto IdentIDPair : IdentifierIDs) { - IdentifierInfo *II = const_cast(IdentIDPair.first); + auto *II = const_cast(IdentIDPair.first); IdentID ID = IdentIDPair.second; assert(II && "NULL identifier in identifier table"); if (!Chain || !II->isFromAST() || II->hasChangedSinceDeserialization()) @@ -3314,7 +3307,7 @@ } // Create a blob abbreviation - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(IDENTIFIER_TABLE)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); @@ -3326,7 +3319,7 @@ } // Write the offsets table for identifier IDs. - BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(IDENTIFIER_OFFSET)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // # of identifiers Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // first ID @@ -3504,7 +3497,7 @@ "must call buildLookups first"); // FIXME: We need to build the lookups table, which is logically const. - DeclContext *DC = const_cast(ConstDC); + auto *DC = const_cast(ConstDC); assert(DC == DC->getPrimaryContext() && "only primary DC has lookup table"); // Create the on-disk hash table representation. @@ -3686,7 +3679,7 @@ if (isa(DC) && Chain && Chain->getKeyDeclaration(cast(DC))->isFromASTFile()) { // Only do this once, for the first local declaration of the namespace. - for (NamespaceDecl *Prev = cast(DC)->getPreviousDecl(); Prev; + for (auto *Prev = cast(DC)->getPreviousDecl(); Prev; Prev = Prev->getPreviousDecl()) if (!Prev->isFromASTFile()) return 0; @@ -3842,7 +3835,8 @@ // Emit the categories map. using namespace llvm; - llvm::BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(OBJC_CATEGORIES_MAP)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // # of entries Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); @@ -3871,10 +3865,8 @@ AddDeclRef(LPT->D, Record); Record.push_back(LPT->Toks.size()); - for (CachedTokens::iterator TokIt = LPT->Toks.begin(), - TokEnd = LPT->Toks.end(); - TokIt != TokEnd; ++TokIt) { - AddToken(*TokIt, Record); + for (const auto &Tok : LPT->Toks) { + AddToken(Tok, Record); } } Stream.EmitRecord(LATE_PARSED_TEMPLATE, Record); @@ -3893,7 +3885,7 @@ Stream.EnterSubblock(EXTENSION_BLOCK_ID, 4); // Emit the metadata record abbreviation. - llvm::BitCodeAbbrev *Abv = new llvm::BitCodeAbbrev(); + auto *Abv = new llvm::BitCodeAbbrev(); Abv->Add(llvm::BitCodeAbbrevOp(EXTENSION_METADATA)); Abv->Add(llvm::BitCodeAbbrevOp(llvm::BitCodeAbbrevOp::VBR, 6)); Abv->Add(llvm::BitCodeAbbrevOp(llvm::BitCodeAbbrevOp::VBR, 6)); @@ -3930,9 +3922,7 @@ void ASTWriter::WriteAttributes(ArrayRef Attrs, RecordDataImpl &Record) { Record.push_back(Attrs.size()); - for (ArrayRef::iterator i = Attrs.begin(), - e = Attrs.end(); i != e; ++i){ - const Attr *A = *i; + for (const auto *A : Attrs) { Record.push_back(A->getKind()); // FIXME: stable encoding, target attrs AddSourceRange(A->getRange(), Record); @@ -4198,11 +4188,9 @@ // Build a record containing all of pending implicit instantiations. RecordData PendingInstantiations; - for (std::deque::iterator - I = SemaRef.PendingInstantiations.begin(), - N = SemaRef.PendingInstantiations.end(); I != N; ++I) { - AddDeclRef(I->first, PendingInstantiations); - AddSourceLocation(I->second, PendingInstantiations); + for (const auto &I : SemaRef.PendingInstantiations) { + AddDeclRef(I.first, PendingInstantiations); + AddSourceLocation(I.second, PendingInstantiations); } assert(SemaRef.PendingLocalImplicitInstantiations.empty() && "There are local ones at end of translation unit!"); @@ -4221,12 +4209,9 @@ // Build a record containing all of the known namespaces. RecordData KnownNamespaces; - for (llvm::MapVector::iterator - I = SemaRef.KnownNamespaces.begin(), - IEnd = SemaRef.KnownNamespaces.end(); - I != IEnd; ++I) { - if (!I->second) - AddDeclRef(I->first, KnownNamespaces); + for (const auto &I : SemaRef.KnownNamespaces) { + if (!I.second) + AddDeclRef(I.first, KnownNamespaces); } // Build a record of all used, undefined objects that require definitions. @@ -4234,10 +4219,9 @@ SmallVector, 16> Undefined; SemaRef.getUndefinedButUsed(Undefined); - for (SmallVectorImpl >::iterator - I = Undefined.begin(), E = Undefined.end(); I != E; ++I) { - AddDeclRef(I->first, UndefinedButUsed); - AddSourceLocation(I->second, UndefinedButUsed); + for (const auto &I : Undefined) { + AddDeclRef(I.first, UndefinedButUsed); + AddSourceLocation(I.second, UndefinedButUsed); } // Build a record containing all delete-expressions that we would like to @@ -4278,7 +4262,7 @@ } } - llvm::BitCodeAbbrev *Abv = new llvm::BitCodeAbbrev(); + auto *Abv = new llvm::BitCodeAbbrev(); Abv->Add(llvm::BitCodeAbbrevOp(TU_UPDATE_LEXICAL)); Abv->Add(llvm::BitCodeAbbrevOp(llvm::BitCodeAbbrevOp::Blob)); unsigned TuUpdateLexicalAbbrev = Stream.EmitAbbrev(Abv); @@ -4323,20 +4307,16 @@ // Make sure visible decls, added to DeclContexts previously loaded from // an AST file, are registered for serialization. - for (SmallVectorImpl::iterator - I = UpdatingVisibleDecls.begin(), - E = UpdatingVisibleDecls.end(); I != E; ++I) { - GetDeclRef(*I); + for (const auto *I : UpdatingVisibleDecls) { + GetDeclRef(I); } // Make sure all decls associated with an identifier are registered for // serialization, if we're storing decls with identifiers. if (!WritingModule || !getLangOpts().CPlusPlus) { llvm::SmallVector IIs; - for (IdentifierTable::iterator ID = PP.getIdentifierTable().begin(), - IDEnd = PP.getIdentifierTable().end(); - ID != IDEnd; ++ID) { - const IdentifierInfo *II = ID->second; + for (const auto &ID : PP.getIdentifierTable()) { + const IdentifierInfo *II = ID.second; if (!Chain || !II->isFromAST() || II->hasChangedSinceDeserialization()) IIs.push_back(II); } @@ -4378,7 +4358,7 @@ // c++-base-specifiers-id:i32 // type-id:i32) // - llvm::BitCodeAbbrev *Abbrev = new BitCodeAbbrev(); + auto *Abbrev = new BitCodeAbbrev(); Abbrev->Add(BitCodeAbbrevOp(MODULE_OFFSET_MAP)); Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); unsigned ModuleOffsetMapAbbrev = Stream.EmitAbbrev(Abbrev); @@ -4708,7 +4688,7 @@ } if (HasUpdatedBody) { - const FunctionDecl *Def = cast(D); + const auto *Def = cast(D); Record.push_back(UPD_CXX_ADDED_FUNCTION_DEFINITION); Record.push_back(Def->isInlined()); AddSourceLocation(Def->getInnerLocStart(), Record); @@ -4729,11 +4709,10 @@ return; RecordData Record; - for (SmallVectorImpl::iterator - I = ReplacedDecls.begin(), E = ReplacedDecls.end(); I != E; ++I) { - Record.push_back(I->ID); - Record.push_back(I->Offset); - Record.push_back(I->Loc); + for (const auto &I : ReplacedDecls) { + Record.push_back(I.ID); + Record.push_back(I.Offset); + Record.push_back(I.Loc); } Stream.EmitRecord(DECL_REPLACEMENTS, Record); } @@ -5256,9 +5235,8 @@ case TemplateName::OverloadedTemplate: { OverloadedTemplateStorage *OvT = Name.getAsOverloadedTemplate(); Record.push_back(OvT->size()); - for (OverloadedTemplateStorage::iterator I = OvT->begin(), E = OvT->end(); - I != E; ++I) - AddDeclRef(*I, Record); + for (const auto &I : *OvT) + AddDeclRef(I, Record); break; } @@ -5348,10 +5326,8 @@ AddSourceLocation(TemplateParams->getLAngleLoc(), Record); AddSourceLocation(TemplateParams->getRAngleLoc(), Record); Record.push_back(TemplateParams->size()); - for (TemplateParameterList::const_iterator - P = TemplateParams->begin(), PEnd = TemplateParams->end(); - P != PEnd; ++P) - AddDeclRef(*P, Record); + for (const auto &P : *TemplateParams) + AddDeclRef(P, Record); } /// \brief Emit a template argument list. @@ -5666,7 +5642,7 @@ void ASTWriter::CompletedTagDefinition(const TagDecl *D) { assert(D->isCompleteDefinition()); assert(!WritingAST && "Already writing the AST!"); - if (const CXXRecordDecl *RD = dyn_cast(D)) { + if (auto *RD = dyn_cast(D)) { // We are interested when a PCH decl is modified. if (RD->isFromASTFile()) { // A forward reference was mutated into a definition. Rewrite it.