Index: clang/lib/AST/ExprConstant.cpp =================================================================== --- clang/lib/AST/ExprConstant.cpp +++ clang/lib/AST/ExprConstant.cpp @@ -6114,7 +6114,7 @@ ForbiddenNullArgs.set(); break; } else - for (auto Idx : Attr->args()) { + for (const auto &Idx : Attr->args()) { unsigned ASTIdx = Idx.getASTIndex(); if (ASTIdx >= Args.size()) continue; Index: clang/lib/AST/ODRHash.cpp =================================================================== --- clang/lib/AST/ODRHash.cpp +++ clang/lib/AST/ODRHash.cpp @@ -594,7 +594,7 @@ ID.AddInteger(Record->getNumBases()); auto Bases = Record->bases(); - for (auto Base : Bases) { + for (const auto &Base : Bases) { AddQualType(Base.getType()); ID.AddInteger(Base.isVirtual()); ID.AddInteger(Base.getAccessSpecifierAsWritten()); Index: clang/lib/Basic/TargetID.cpp =================================================================== --- clang/lib/Basic/TargetID.cpp +++ clang/lib/Basic/TargetID.cpp @@ -133,7 +133,7 @@ std::map OrderedMap; for (const auto &F : Features) OrderedMap[F.first()] = F.second; - for (auto F : OrderedMap) + for (const auto &F : OrderedMap) TargetID = TargetID + ':' + F.first.str() + (F.second ? "+" : "-"); return TargetID; } Index: clang/lib/Basic/Targets/ARM.cpp =================================================================== --- clang/lib/Basic/Targets/ARM.cpp +++ clang/lib/Basic/Targets/ARM.cpp @@ -460,7 +460,7 @@ uint64_t Extensions = llvm::ARM::getDefaultExtensions(CPU, Arch); llvm::ARM::getExtensionFeatures(Extensions, TargetFeatures); - for (auto Feature : TargetFeatures) + for (const auto &Feature : TargetFeatures) if (Feature[0] == '+') Features[Feature.drop_front(1)] = true; Index: clang/lib/CodeGen/CGExpr.cpp =================================================================== --- clang/lib/CodeGen/CGExpr.cpp +++ clang/lib/CodeGen/CGExpr.cpp @@ -3545,7 +3545,7 @@ {CFITCK_ICall, SanitizerKind::CFIICall}}; SmallVector, 5> Checks; - for (auto CheckKindMaskPair : CheckKinds) { + for (const auto &CheckKindMaskPair : CheckKinds) { int Kind = CheckKindMaskPair.first; SanitizerMask Mask = CheckKindMaskPair.second; llvm::Value *Cond = Index: clang/lib/CodeGen/CGVTables.cpp =================================================================== --- clang/lib/CodeGen/CGVTables.cpp +++ clang/lib/CodeGen/CGVTables.cpp @@ -1326,7 +1326,7 @@ }); ArrayRef Comps = VTLayout.vtable_components(); - for (auto AP : AddressPoints) { + for (const auto &AP : AddressPoints) { // Create type metadata for the address point. AddVTableTypeMetadata(VTable, ComponentWidth * AP.second, AP.first); Index: clang/lib/Sema/SemaInit.cpp =================================================================== --- clang/lib/Sema/SemaInit.cpp +++ clang/lib/Sema/SemaInit.cpp @@ -7168,7 +7168,7 @@ } static bool isVarOnPath(IndirectLocalPath &Path, VarDecl *VD) { - for (auto E : Path) + for (const auto &E : Path) if (E.Kind == IndirectLocalPathEntry::VarInit && E.D == VD) return true; return false; Index: clang/lib/Serialization/ASTReader.cpp =================================================================== --- clang/lib/Serialization/ASTReader.cpp +++ clang/lib/Serialization/ASTReader.cpp @@ -9409,7 +9409,7 @@ /*ErrorOnTagTypeMismatch =*/true); if (Ctx.IsEquivalent(ExtensionsPair.first, ExtensionsPair.second)) { // Merge redeclared ivars with their predecessors. - for (auto IvarPair : DuplicateIvars) { + for (const auto &IvarPair : DuplicateIvars) { ObjCIvarDecl *Ivar = IvarPair.first, *PrevIvar = IvarPair.second; // Change semantic DeclContext but keep the lexical one. Ivar->setDeclContextsImpl(PrevIvar->getDeclContext(), Index: clang/lib/StaticAnalyzer/Core/ExprEngine.cpp =================================================================== --- clang/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ clang/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -1050,7 +1050,7 @@ const StackFrameContext *SFC = LC ? LC->getStackFrame() : nullptr; SymbolReaper SymReaper(SFC, ReferenceStmt, SymMgr, getStoreManager()); - for (auto I : CleanedState->get()) { + for (const auto &I : CleanedState->get()) { if (SymbolRef Sym = I.second.getAsSymbol()) SymReaper.markLive(Sym); if (const MemRegion *MR = I.second.getAsRegion()) Index: clang/lib/Tooling/Syntax/Tokens.cpp =================================================================== --- clang/lib/Tooling/Syntax/Tokens.cpp +++ clang/lib/Tooling/Syntax/Tokens.cpp @@ -986,7 +986,7 @@ OS << "\n"; std::vector Keys; - for (auto F : Files) + for (const auto &F : Files) Keys.push_back(F.first); llvm::sort(Keys);