Mixed feelings here - Kazu's made a lot of cleanup/stylistic changes across the LLVM project for a while now, most, at least I think, are quite welcome (things like switching to range-based-for, std algorithms over llvm ones, llvm algorithms over manually written loops, etc). But yeah, there's some threshold below which the churn might not be worth the benefit - especially if the change doesn't come along with tooling to enforce the invariant is maintained in the future (if it's easy to make mistakes like this one - we'll regress it and need to do cleanup again in the future)
Also, for this particular one, I wonder if in some cases this sort of automatic transformation isn't ideal - if something is a pointer, but that's an implementation detail, rather than an intentional feature of an API (eg: the pointer-ness might be hidden behind a typedef and used as an opaque handle, without any dereferencing, etc) I think it'd be really good to have some discussion on discourse about if/how some of these cleanups could be formed into a way to enforce/encourage the invariant to be maintained going forward - clang-tidy (assuming that's the basis for the tooling Kazu's using to make these changes in the first place) integration into the LLVM build in some way, etc. & yeah, adding the `const` too if/when that's relevant would've improved the quality/value/justification for a cleanup change like this. On Sun, Sep 4, 2022 at 5:58 AM Aaron Ballman via cfe-commits <cfe-commits@lists.llvm.org> wrote: > > FWIW, sweeping NFC changes like this cause a fair amount of code churn > (which makes tools like git blame a bit harder to use) for a > relatively small improvement to code readability, which is why our > developer policy asks that you "Avoid committing formatting- or > whitespace-only changes outside of code you plan to make subsequent > changes to." In the future, I'd caution against doing such large-scale > sweeping NFC changes outside of areas you're actively working on > unless there's some wider discussion with the community first. That > said, all of your changes are all improvements, so thank you for them! > > Some of the changes you made would have ideally made it more clear > when the deduced type is a pointer to a const object instead of hiding > the qualifier behind the deduction. I've pointed out a couple such > places below, but don't feel obligated to go back and change anything > unless you're going to be touching other code in the area. > > ~Aaron > > > On Sun, Sep 4, 2022 at 2:27 AM Kazu Hirata via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > > > > > Author: Kazu Hirata > > Date: 2022-09-03T23:27:27-07:00 > > New Revision: b7a7aeee90cffefd0f73b8d9f44ab4d1d5123d05 > > > > URL: > > https://github.com/llvm/llvm-project/commit/b7a7aeee90cffefd0f73b8d9f44ab4d1d5123d05 > > DIFF: > > https://github.com/llvm/llvm-project/commit/b7a7aeee90cffefd0f73b8d9f44ab4d1d5123d05.diff > > > > LOG: [clang] Qualify auto in range-based for loops (NFC) > > > > Added: > > > > > > Modified: > > clang/lib/ARCMigrate/ObjCMT.cpp > > clang/lib/ARCMigrate/TransGCAttrs.cpp > > clang/lib/AST/ASTContext.cpp > > clang/lib/AST/ASTImporter.cpp > > clang/lib/AST/Decl.cpp > > clang/lib/AST/DeclObjC.cpp > > clang/lib/AST/ODRHash.cpp > > clang/lib/AST/OpenMPClause.cpp > > clang/lib/AST/StmtProfile.cpp > > clang/lib/AST/Type.cpp > > clang/lib/Analysis/CFG.cpp > > clang/lib/Analysis/ThreadSafetyCommon.cpp > > clang/lib/CodeGen/CGBlocks.cpp > > clang/lib/CodeGen/CGCall.cpp > > clang/lib/CodeGen/CGClass.cpp > > clang/lib/CodeGen/CGDebugInfo.cpp > > clang/lib/CodeGen/CGDeclCXX.cpp > > clang/lib/CodeGen/CGExpr.cpp > > clang/lib/CodeGen/CGObjCGNU.cpp > > clang/lib/CodeGen/CGObjCMac.cpp > > clang/lib/CodeGen/CodeGenFunction.cpp > > clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > > clang/lib/CodeGen/SwiftCallingConv.cpp > > clang/lib/Driver/Compilation.cpp > > clang/lib/Driver/Driver.cpp > > clang/lib/Driver/ToolChains/Clang.cpp > > clang/lib/Driver/ToolChains/CommonArgs.cpp > > clang/lib/Driver/ToolChains/Gnu.cpp > > clang/lib/Driver/ToolChains/HIPAMD.cpp > > clang/lib/Format/Format.cpp > > clang/lib/Frontend/FrontendActions.cpp > > clang/lib/Index/USRGeneration.cpp > > clang/lib/Sema/IdentifierResolver.cpp > > clang/lib/Sema/Sema.cpp > > clang/lib/Sema/SemaCodeComplete.cpp > > clang/lib/Sema/SemaDecl.cpp > > clang/lib/Sema/SemaDeclAttr.cpp > > clang/lib/Sema/SemaDeclCXX.cpp > > clang/lib/Sema/SemaDeclObjC.cpp > > clang/lib/Sema/SemaExpr.cpp > > clang/lib/Sema/SemaExprCXX.cpp > > clang/lib/Sema/SemaInit.cpp > > clang/lib/Sema/SemaLambda.cpp > > clang/lib/Sema/SemaLookup.cpp > > clang/lib/Sema/SemaObjCProperty.cpp > > clang/lib/Sema/SemaOpenMP.cpp > > clang/lib/Sema/SemaOverload.cpp > > clang/lib/Sema/SemaTemplateDeduction.cpp > > clang/lib/Sema/SemaTemplateInstantiateDecl.cpp > > clang/lib/Serialization/ASTReader.cpp > > clang/lib/Serialization/ASTWriterDecl.cpp > > clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp > > clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp > > clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp > > clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp > > clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp > > clang/lib/StaticAnalyzer/Core/CallEvent.cpp > > clang/lib/StaticAnalyzer/Core/CoreEngine.cpp > > clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp > > clang/lib/Tooling/Tooling.cpp > > > > Removed: > > > > > > > > ################################################################################ > > diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp > > b/clang/lib/ARCMigrate/ObjCMT.cpp > > index 26f751b77f86a..fe0ce4c5cdc3a 100644 > > --- a/clang/lib/ARCMigrate/ObjCMT.cpp > > +++ b/clang/lib/ARCMigrate/ObjCMT.cpp > > @@ -792,7 +792,7 @@ static bool UseNSOptionsMacro(Preprocessor &PP, > > ASTContext &Ctx, > > bool PowerOfTwo = true; > > bool AllHexdecimalEnumerator = true; > > uint64_t MaxPowerOfTwoVal = 0; > > - for (auto Enumerator : EnumDcl->enumerators()) { > > + for (auto *Enumerator : EnumDcl->enumerators()) { > > const Expr *InitExpr = Enumerator->getInitExpr(); > > if (!InitExpr) { > > PowerOfTwo = false; > > > > diff --git a/clang/lib/ARCMigrate/TransGCAttrs.cpp > > b/clang/lib/ARCMigrate/TransGCAttrs.cpp > > index 99a61e0842a76..b94aee2de573e 100644 > > --- a/clang/lib/ARCMigrate/TransGCAttrs.cpp > > +++ b/clang/lib/ARCMigrate/TransGCAttrs.cpp > > @@ -158,7 +158,7 @@ class GCAttrsCollector : public > > RecursiveASTVisitor<GCAttrsCollector> { > > if (!D) > > return false; > > > > - for (auto I : D->redecls()) > > + for (auto *I : D->redecls()) > > if (!isInMainFile(I->getLocation())) > > return false; > > > > > > diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp > > index 52e7eeca665ab..20fcc8fea4b79 100644 > > --- a/clang/lib/AST/ASTContext.cpp > > +++ b/clang/lib/AST/ASTContext.cpp > > @@ -7568,7 +7568,7 @@ std::string ASTContext::getObjCEncodingForBlock(const > > BlockExpr *Expr) const { > > // FIXME: There might(should) be a better way of doing this computation! > > CharUnits PtrSize = getTypeSizeInChars(VoidPtrTy); > > CharUnits ParmOffset = PtrSize; > > - for (auto PI : Decl->parameters()) { > > + for (auto *PI : Decl->parameters()) { > > QualType PType = PI->getType(); > > CharUnits sz = getObjCEncodingTypeSize(PType); > > if (sz.isZero()) > > @@ -7583,7 +7583,7 @@ std::string ASTContext::getObjCEncodingForBlock(const > > BlockExpr *Expr) const { > > > > // Argument types. > > ParmOffset = PtrSize; > > - for (auto PVDecl : Decl->parameters()) { > > + for (auto *PVDecl : Decl->parameters()) { > > QualType PType = PVDecl->getOriginalType(); > > if (const auto *AT = > > dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) { > > @@ -7612,7 +7612,7 @@ ASTContext::getObjCEncodingForFunctionDecl(const > > FunctionDecl *Decl) const { > > getObjCEncodingForType(Decl->getReturnType(), S); > > CharUnits ParmOffset; > > // Compute size of all parameters. > > - for (auto PI : Decl->parameters()) { > > + for (auto *PI : Decl->parameters()) { > > QualType PType = PI->getType(); > > CharUnits sz = getObjCEncodingTypeSize(PType); > > if (sz.isZero()) > > @@ -7626,7 +7626,7 @@ ASTContext::getObjCEncodingForFunctionDecl(const > > FunctionDecl *Decl) const { > > ParmOffset = CharUnits::Zero(); > > > > // Argument types. > > - for (auto PVDecl : Decl->parameters()) { > > + for (auto *PVDecl : Decl->parameters()) { > > Because `Decl` is `const FunctionDecl *`, the parameters should > (notionally at least) be const as well. > > > QualType PType = PVDecl->getOriginalType(); > > if (const auto *AT = > > dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) { > > @@ -9724,7 +9724,7 @@ void getIntersectionOfProtocols(ASTContext &Context, > > llvm::SmallPtrSet<ObjCProtocolDecl *, 8> LHSProtocolSet; > > > > // Start with the protocol qualifiers. > > - for (auto proto : LHS->quals()) { > > + for (auto *proto : LHS->quals()) { > > Context.CollectInheritedProtocols(proto, LHSProtocolSet); > > } > > > > @@ -9735,7 +9735,7 @@ void getIntersectionOfProtocols(ASTContext &Context, > > llvm::SmallPtrSet<ObjCProtocolDecl *, 8> RHSProtocolSet; > > > > // Start with the protocol qualifiers. > > - for (auto proto : RHS->quals()) { > > + for (auto *proto : RHS->quals()) { > > Context.CollectInheritedProtocols(proto, RHSProtocolSet); > > } > > > > @@ -9743,7 +9743,7 @@ void getIntersectionOfProtocols(ASTContext &Context, > > Context.CollectInheritedProtocols(RHS->getInterface(), RHSProtocolSet); > > > > // Compute the intersection of the collected protocol sets. > > - for (auto proto : LHSProtocolSet) { > > + for (auto *proto : LHSProtocolSet) { > > if (RHSProtocolSet.count(proto)) > > IntersectionSet.push_back(proto); > > } > > > > diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp > > index c368a61577cba..bd78ece6efa98 100644 > > --- a/clang/lib/AST/ASTImporter.cpp > > +++ b/clang/lib/AST/ASTImporter.cpp > > @@ -3592,7 +3592,7 @@ ExpectedDecl > > ASTNodeImporter::VisitFunctionDecl(FunctionDecl *D) { > > > > // Import the function parameters. > > SmallVector<ParmVarDecl *, 8> Parameters; > > - for (auto P : D->parameters()) { > > + for (auto *P : D->parameters()) { > > if (Expected<ParmVarDecl *> ToPOrErr = import(P)) > > Parameters.push_back(*ToPOrErr); > > else > > > > diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp > > index 7dc0fec46d421..957610ef36b74 100644 > > --- a/clang/lib/AST/Decl.cpp > > +++ b/clang/lib/AST/Decl.cpp > > @@ -1527,7 +1527,7 @@ LinkageInfo LinkageComputer::getLVForDecl(const > > NamedDecl *D, > > // that all other computed linkages match, check that the one we just > > // computed also does. > > NamedDecl *Old = nullptr; > > - for (auto I : D->redecls()) { > > + for (auto *I : D->redecls()) { > > Similar here for the redeclarations of a `const NamedDecl *`. > > > auto *T = cast<NamedDecl>(I); > > if (T == D) > > continue; > > @@ -1825,7 +1825,7 @@ bool NamedDecl::declarationReplaces(NamedDecl *OldD, > > bool IsKnownNewer) const { > > // Check whether this is actually newer than OldD. We want to keep the > > // newer declaration. This loop will usually only iterate once, because > > // OldD is usually the previous declaration. > > - for (auto D : redecls()) { > > + for (auto *D : redecls()) { > > if (D == OldD) > > break; > > > > @@ -2273,7 +2273,7 @@ VarDecl *VarDecl::getActingDefinition() { > > > > VarDecl *VarDecl::getDefinition(ASTContext &C) { > > VarDecl *First = getFirstDecl(); > > - for (auto I : First->redecls()) { > > + for (auto *I : First->redecls()) { > > if (I->isThisDeclarationADefinition(C) == Definition) > > return I; > > } > > @@ -2284,7 +2284,7 @@ VarDecl::DefinitionKind > > VarDecl::hasDefinition(ASTContext &C) const { > > DefinitionKind Kind = DeclarationOnly; > > > > const VarDecl *First = getFirstDecl(); > > - for (auto I : First->redecls()) { > > + for (auto *I : First->redecls()) { > > Kind = std::max(Kind, I->isThisDeclarationADefinition(C)); > > if (Kind == Definition) > > break; > > @@ -2294,7 +2294,7 @@ VarDecl::DefinitionKind > > VarDecl::hasDefinition(ASTContext &C) const { > > } > > > > const Expr *VarDecl::getAnyInitializer(const VarDecl *&D) const { > > - for (auto I : redecls()) { > > + for (auto *I : redecls()) { > > if (auto Expr = I->getInit()) { > > D = I; > > return Expr; > > @@ -2330,7 +2330,7 @@ Stmt **VarDecl::getInitAddress() { > > > > VarDecl *VarDecl::getInitializingDeclaration() { > > VarDecl *Def = nullptr; > > - for (auto I : redecls()) { > > + for (auto *I : redecls()) { > > if (I->hasInit()) > > return I; > > > > @@ -3015,7 +3015,7 @@ FunctionDecl::getDefaultedFunctionInfo() const { > > } > > > > bool FunctionDecl::hasBody(const FunctionDecl *&Definition) const { > > - for (auto I : redecls()) { > > + for (auto *I : redecls()) { > > if (I->doesThisDeclarationHaveABody()) { > > Definition = I; > > return true; > > @@ -3686,7 +3686,7 @@ bool > > FunctionDecl::isInlineDefinitionExternallyVisible() const { > > > > // If any declaration is 'inline' but not 'extern', then this > > definition > > // is externally visible. > > - for (auto Redecl : redecls()) { > > + for (auto *Redecl : redecls()) { > > if (Redecl->isInlineSpecified() && > > Redecl->getStorageClass() != SC_Extern) > > return true; > > @@ -3703,7 +3703,7 @@ bool > > FunctionDecl::isInlineDefinitionExternallyVisible() const { > > // [...] If all of the file scope declarations for a function in a > > // translation unit include the inline function specifier without > > extern, > > // then the definition in that translation unit is an inline > > definition. > > - for (auto Redecl : redecls()) { > > + for (auto *Redecl : redecls()) { > > if (RedeclForcesDefC99(Redecl)) > > return true; > > } > > @@ -4408,7 +4408,7 @@ void TagDecl::startDefinition() { > > if (auto *D = dyn_cast<CXXRecordDecl>(this)) { > > struct CXXRecordDecl::DefinitionData *Data = > > new (getASTContext()) struct CXXRecordDecl::DefinitionData(D); > > - for (auto I : redecls()) > > + for (auto *I : redecls()) > > cast<CXXRecordDecl>(I)->DefinitionData = Data; > > } > > } > > @@ -4441,7 +4441,7 @@ TagDecl *TagDecl::getDefinition() const { > > if (const auto *CXXRD = dyn_cast<CXXRecordDecl>(this)) > > return CXXRD->getDefinition(); > > > > - for (auto R : redecls()) > > + for (auto *R : redecls()) > > if (R->isCompleteDefinition()) > > return R; > > > > > > diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp > > index 15c545b59c819..5475d0c841f64 100644 > > --- a/clang/lib/AST/DeclObjC.cpp > > +++ b/clang/lib/AST/DeclObjC.cpp > > @@ -864,7 +864,7 @@ bool > > ObjCMethodDecl::isDesignatedInitializerForTheInterface( > > } > > > > bool ObjCMethodDecl::hasParamDestroyedInCallee() const { > > - for (auto param : parameters()) { > > + for (auto *param : parameters()) { > > if (param->isDestroyedInCallee()) > > return true; > > } > > @@ -1496,7 +1496,7 @@ ObjCTypeParamList *ObjCTypeParamList::create( > > void ObjCTypeParamList::gatherDefaultTypeArgs( > > SmallVectorImpl<QualType> &typeArgs) const { > > typeArgs.reserve(size()); > > - for (auto typeParam : *this) > > + for (auto *typeParam : *this) > > typeArgs.push_back(typeParam->getUnderlyingType()); > > } > > > > > > diff --git a/clang/lib/AST/ODRHash.cpp b/clang/lib/AST/ODRHash.cpp > > index 04cbb09356d7b..51f806429f67a 100644 > > --- a/clang/lib/AST/ODRHash.cpp > > +++ b/clang/lib/AST/ODRHash.cpp > > @@ -564,7 +564,7 @@ void ODRHash::AddFunctionDecl(const FunctionDecl > > *Function, > > AddQualType(Function->getReturnType()); > > > > ID.AddInteger(Function->param_size()); > > - for (auto Param : Function->parameters()) > > + for (auto *Param : Function->parameters()) > > AddSubDecl(Param); > > > > if (SkipBody) { > > @@ -934,7 +934,7 @@ class ODRTypeVisitor : public > > TypeVisitor<ODRTypeVisitor> { > > > > auto Protocols = T->getProtocols(); > > ID.AddInteger(Protocols.size()); > > - for (auto Protocol : Protocols) { > > + for (auto *Protocol : Protocols) { > > AddDecl(Protocol); > > } > > > > @@ -952,7 +952,7 @@ class ODRTypeVisitor : public > > TypeVisitor<ODRTypeVisitor> { > > AddDecl(T->getDecl()); > > auto Protocols = T->getProtocols(); > > ID.AddInteger(Protocols.size()); > > - for (auto Protocol : Protocols) { > > + for (auto *Protocol : Protocols) { > > AddDecl(Protocol); > > } > > > > > > diff --git a/clang/lib/AST/OpenMPClause.cpp > > b/clang/lib/AST/OpenMPClause.cpp > > index 214ae5bd6be48..adfc1d542bb34 100644 > > --- a/clang/lib/AST/OpenMPClause.cpp > > +++ b/clang/lib/AST/OpenMPClause.cpp > > @@ -1702,7 +1702,7 @@ void > > OMPClausePrinter::VisitOMPSimdlenClause(OMPSimdlenClause *Node) { > > void OMPClausePrinter::VisitOMPSizesClause(OMPSizesClause *Node) { > > OS << "sizes("; > > bool First = true; > > - for (auto Size : Node->getSizesRefs()) { > > + for (auto *Size : Node->getSizesRefs()) { > > if (!First) > > OS << ", "; > > Size->printPretty(OS, nullptr, Policy, 0); > > > > diff --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp > > index 92a8b18cf68a3..6af2beefc7926 100644 > > --- a/clang/lib/AST/StmtProfile.cpp > > +++ b/clang/lib/AST/StmtProfile.cpp > > @@ -472,7 +472,7 @@ void OMPClauseProfiler::VisitOMPSimdlenClause(const > > OMPSimdlenClause *C) { > > } > > > > void OMPClauseProfiler::VisitOMPSizesClause(const OMPSizesClause *C) { > > - for (auto E : C->getSizesRefs()) > > + for (auto *E : C->getSizesRefs()) > > if (E) > > Profiler->VisitExpr(E); > > } > > > > diff --git a/clang/lib/AST/Type.cpp b/clang/lib/AST/Type.cpp > > index 136af191f3c04..ec6003fe6559d 100644 > > --- a/clang/lib/AST/Type.cpp > > +++ b/clang/lib/AST/Type.cpp > > @@ -3539,7 +3539,7 @@ TagType::TagType(TypeClass TC, const TagDecl *D, > > QualType can) > > decl(const_cast<TagDecl *>(D)) {} > > > > static TagDecl *getInterestingTagDecl(TagDecl *decl) { > > - for (auto I : decl->redecls()) { > > + for (auto *I : decl->redecls()) { > > if (I->isCompleteDefinition() || I->isBeingDefined()) > > return I; > > } > > @@ -3780,7 +3780,7 @@ void > > ObjCObjectTypeImpl::Profile(llvm::FoldingSetNodeID &ID, > > for (auto typeArg : typeArgs) > > ID.AddPointer(typeArg.getAsOpaquePtr()); > > ID.AddInteger(protocols.size()); > > - for (auto proto : protocols) > > + for (auto *proto : protocols) > > ID.AddPointer(proto); > > ID.AddBoolean(isKindOf); > > } > > @@ -3798,7 +3798,7 @@ void > > ObjCTypeParamType::Profile(llvm::FoldingSetNodeID &ID, > > ID.AddPointer(OTPDecl); > > ID.AddPointer(CanonicalType.getAsOpaquePtr()); > > ID.AddInteger(protocols.size()); > > - for (auto proto : protocols) > > + for (auto *proto : protocols) > > ID.AddPointer(proto); > > } > > > > > > diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp > > index 5aaf2fb74318b..f042468ebba72 100644 > > --- a/clang/lib/Analysis/CFG.cpp > > +++ b/clang/lib/Analysis/CFG.cpp > > @@ -2994,7 +2994,7 @@ CFGBlock *CFGBuilder::VisitDeclSubExpr(DeclStmt *DS) { > > // If we bind to a tuple-like type, we iterate over the HoldingVars, and > > // create a DeclStmt for each of them. > > if (const auto *DD = dyn_cast<DecompositionDecl>(VD)) { > > - for (auto BD : llvm::reverse(DD->bindings())) { > > + for (auto *BD : llvm::reverse(DD->bindings())) { > > if (auto *VD = BD->getHoldingVar()) { > > DeclGroupRef DG(VD); > > DeclStmt *DSNew = > > > > diff --git a/clang/lib/Analysis/ThreadSafetyCommon.cpp > > b/clang/lib/Analysis/ThreadSafetyCommon.cpp > > index 66413f84907a3..06b61b4de92f8 100644 > > --- a/clang/lib/Analysis/ThreadSafetyCommon.cpp > > +++ b/clang/lib/Analysis/ThreadSafetyCommon.cpp > > @@ -637,7 +637,7 @@ SExprBuilder::translateAbstractConditionalOperator( > > til::SExpr * > > SExprBuilder::translateDeclStmt(const DeclStmt *S, CallingContext *Ctx) { > > DeclGroupRef DGrp = S->getDeclGroup(); > > - for (auto I : DGrp) { > > + for (auto *I : DGrp) { > > if (auto *VD = dyn_cast_or_null<VarDecl>(I)) { > > Expr *E = VD->getInit(); > > til::SExpr* SE = translate(E, Ctx); > > > > diff --git a/clang/lib/CodeGen/CGBlocks.cpp > > b/clang/lib/CodeGen/CGBlocks.cpp > > index ff6ca0914e0d1..4061fa805d800 100644 > > --- a/clang/lib/CodeGen/CGBlocks.cpp > > +++ b/clang/lib/CodeGen/CGBlocks.cpp > > @@ -521,7 +521,7 @@ static void initializeForBlockHeader(CodeGenModule > > &CGM, CGBlockInfo &info, > > unsigned BlockAlign = GenPtrAlign.getQuantity(); > > if (auto *Helper = > > CGM.getTargetCodeGenInfo().getTargetOpenCLBlockHelper()) { > > - for (auto I : Helper->getCustomFieldTypes()) /* custom fields */ { > > + for (auto *I : Helper->getCustomFieldTypes()) /* custom fields */ { > > // TargetOpenCLBlockHelp needs to make sure the struct is packed. > > // If necessary, add padding fields to the custom fields. > > unsigned Align = CGM.getDataLayout().getABITypeAlignment(I); > > @@ -1356,7 +1356,7 @@ static llvm::Constant *buildGlobalBlock(CodeGenModule > > &CGM, > > fields.add(buildBlockDescriptor(CGM, blockInfo)); > > } else if (auto *Helper = > > CGM.getTargetCodeGenInfo().getTargetOpenCLBlockHelper()) { > > - for (auto I : Helper->getCustomFieldValues(CGM, blockInfo)) { > > + for (auto *I : Helper->getCustomFieldValues(CGM, blockInfo)) { > > fields.add(I); > > } > > } > > > > diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp > > index 90b1270dc8abc..ff39289d68b30 100644 > > --- a/clang/lib/CodeGen/CGCall.cpp > > +++ b/clang/lib/CodeGen/CGCall.cpp > > @@ -1723,7 +1723,7 @@ CodeGenTypes::GetFunctionType(const CGFunctionInfo > > &FI) { > > > > case ABIArgInfo::CoerceAndExpand: { > > auto ArgTypesIter = ArgTypes.begin() + FirstIRArg; > > - for (auto EltTy : ArgInfo.getCoerceAndExpandTypeSequence()) { > > + for (auto *EltTy : ArgInfo.getCoerceAndExpandTypeSequence()) { > > *ArgTypesIter++ = EltTy; > > } > > assert(ArgTypesIter == ArgTypes.begin() + FirstIRArg + NumIRArgs); > > > > diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp > > index 4a952b9abd555..bf20c206e1e1f 100644 > > --- a/clang/lib/CodeGen/CGClass.cpp > > +++ b/clang/lib/CodeGen/CGClass.cpp > > @@ -2995,7 +2995,7 @@ void CodeGenFunction::EmitLambdaBlockInvokeBody() { > > CallArgs.add(RValue::get(ThisPtr.getPointer()), ThisType); > > > > // Add the rest of the parameters. > > - for (auto param : BD->parameters()) > > + for (auto *param : BD->parameters()) > > EmitDelegateCallArg(CallArgs, param, param->getBeginLoc()); > > > > assert(!Lambda->isGenericLambda() && > > @@ -3015,7 +3015,7 @@ void > > CodeGenFunction::EmitLambdaDelegatingInvokeBody(const CXXMethodDecl *MD) { > > CallArgs.add(RValue::get(ThisPtr.getPointer()), ThisType); > > > > // Add the rest of the parameters. > > - for (auto Param : MD->parameters()) > > + for (auto *Param : MD->parameters()) > > EmitDelegateCallArg(CallArgs, Param, Param->getBeginLoc()); > > > > const CXXMethodDecl *CallOp = Lambda->getLambdaCallOperator(); > > > > diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp > > b/clang/lib/CodeGen/CGDebugInfo.cpp > > index 4b7e290f6480c..49dcf7781d03a 100644 > > --- a/clang/lib/CodeGen/CGDebugInfo.cpp > > +++ b/clang/lib/CodeGen/CGDebugInfo.cpp > > @@ -3894,7 +3894,7 @@ llvm::DISubprogram > > *CGDebugInfo::getFunctionDeclaration(const Decl *D) { > > return SP; > > } > > > > - for (auto NextFD : FD->redecls()) { > > + for (auto *NextFD : FD->redecls()) { > > auto MI = SPCache.find(NextFD->getCanonicalDecl()); > > if (MI != SPCache.end()) { > > auto *SP = dyn_cast_or_null<llvm::DISubprogram>(MI->second); > > > > diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp > > b/clang/lib/CodeGen/CGDeclCXX.cpp > > index 2075857848656..df17e0b52815c 100644 > > --- a/clang/lib/CodeGen/CGDeclCXX.cpp > > +++ b/clang/lib/CodeGen/CGDeclCXX.cpp > > @@ -707,7 +707,7 @@ void CodeGenModule::EmitCXXModuleInitFunc(Module > > *Primary) { > > } > > > > // Now append the ones without specified priority. > > - for (auto F : CXXGlobalInits) > > + for (auto *F : CXXGlobalInits) > > ModuleInits.push_back(F); > > CXXGlobalInits.clear(); > > > > @@ -844,7 +844,7 @@ CodeGenModule::EmitCXXGlobalInitFunc() { > > > > // Prepend the module inits to the highest priority set. > > if (!ModuleInits.empty()) { > > - for (auto F : ModuleInits) > > + for (auto *F : ModuleInits) > > LocalCXXGlobalInits.push_back(F); > > ModuleInits.clear(); > > } > > @@ -862,7 +862,7 @@ CodeGenModule::EmitCXXGlobalInitFunc() { > > CXXGlobalInits.empty()) > > return; > > > > - for (auto F : CXXGlobalInits) > > + for (auto *F : CXXGlobalInits) > > ModuleInits.push_back(F); > > CXXGlobalInits.clear(); > > > > > > diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp > > index 324eb56167b56..6878255c48acb 100644 > > --- a/clang/lib/CodeGen/CGExpr.cpp > > +++ b/clang/lib/CodeGen/CGExpr.cpp > > @@ -3760,7 +3760,7 @@ static Address emitArraySubscriptGEP(CodeGenFunction > > &CGF, Address addr, > > const llvm::Twine &name = "arrayidx") > > { > > // All the indices except that last must be zero. > > #ifndef NDEBUG > > - for (auto idx : indices.drop_back()) > > + for (auto *idx : indices.drop_back()) > > assert(isa<llvm::ConstantInt>(idx) && > > cast<llvm::ConstantInt>(idx)->isZero()); > > #endif > > @@ -4297,7 +4297,7 @@ unsigned CodeGenFunction::getDebugInfoFIndex(const > > RecordDecl *Rec, > > unsigned FieldIndex) { > > unsigned I = 0, Skipped = 0; > > > > - for (auto F : Rec->getDefinition()->fields()) { > > + for (auto *F : Rec->getDefinition()->fields()) { > > if (I == FieldIndex) > > break; > > if (F->isUnnamedBitfield()) > > > > diff --git a/clang/lib/CodeGen/CGObjCGNU.cpp > > b/clang/lib/CodeGen/CGObjCGNU.cpp > > index 7bbe9af7ed593..c734a539cbfbf 100644 > > --- a/clang/lib/CodeGen/CGObjCGNU.cpp > > +++ b/clang/lib/CodeGen/CGObjCGNU.cpp > > @@ -3316,7 +3316,7 @@ llvm::Constant > > *CGObjCGNU::MakeBitField(ArrayRef<bool> bits) { > > auto fields = builder.beginStruct(); > > fields.addInt(Int32Ty, values.size()); > > auto array = fields.beginArray(); > > - for (auto v : values) array.add(v); > > + for (auto *v : values) array.add(v); > > array.finishAndAddTo(fields); > > > > llvm::Constant *GS = > > > > diff --git a/clang/lib/CodeGen/CGObjCMac.cpp > > b/clang/lib/CodeGen/CGObjCMac.cpp > > index 2d704cec05761..7a972152e1144 100644 > > --- a/clang/lib/CodeGen/CGObjCMac.cpp > > +++ b/clang/lib/CodeGen/CGObjCMac.cpp > > @@ -1171,7 +1171,7 @@ class ProtocolMethodLists { > > static ProtocolMethodLists get(const ObjCProtocolDecl *PD) { > > ProtocolMethodLists result; > > > > - for (auto MD : PD->methods()) { > > + for (auto *MD : PD->methods()) { > > size_t index = (2 * size_t(MD->isOptional())) > > + (size_t(MD->isClassMethod())); > > result.Methods[index].push_back(MD); > > @@ -3454,7 +3454,7 @@ static bool hasWeakMember(QualType type) { > > } > > > > if (auto recType = type->getAs<RecordType>()) { > > - for (auto field : recType->getDecl()->fields()) { > > + for (auto *field : recType->getDecl()->fields()) { > > if (hasWeakMember(field->getType())) > > return true; > > } > > > > diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp > > b/clang/lib/CodeGen/CodeGenFunction.cpp > > index 81c687e4530f4..caf14868078ec 100644 > > --- a/clang/lib/CodeGen/CodeGenFunction.cpp > > +++ b/clang/lib/CodeGen/CodeGenFunction.cpp > > @@ -725,7 +725,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, > > QualType RetTy, > > const bool SanitizeBounds = SanOpts.hasOneOf(SanitizerKind::Bounds); > > bool NoSanitizeCoverage = false; > > > > - for (auto Attr : D->specific_attrs<NoSanitizeAttr>()) { > > + for (auto *Attr : D->specific_attrs<NoSanitizeAttr>()) { > > // Apply the no_sanitize* attributes to SanOpts. > > SanitizerMask mask = Attr->getMask(); > > SanOpts.Mask &= ~mask; > > > > diff --git a/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > > b/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > > index f6eaa35b48738..677b66d3e1dcb 100644 > > --- a/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > > +++ b/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > > @@ -107,7 +107,7 @@ class PCHContainerGenerator : public ASTConsumer { > > return true; > > > > SmallVector<QualType, 16> ArgTypes; > > - for (auto i : D->parameters()) > > + for (auto *i : D->parameters()) > > ArgTypes.push_back(i->getType()); > > QualType RetTy = D->getReturnType(); > > QualType FnTy = Ctx.getFunctionType(RetTy, ArgTypes, > > @@ -126,7 +126,7 @@ class PCHContainerGenerator : public ASTConsumer { > > ArgTypes.push_back(D->getSelfType(Ctx, D->getClassInterface(), > > selfIsPseudoStrong, > > selfIsConsumed)); > > ArgTypes.push_back(Ctx.getObjCSelType()); > > - for (auto i : D->parameters()) > > + for (auto *i : D->parameters()) > > ArgTypes.push_back(i->getType()); > > QualType RetTy = D->getReturnType(); > > QualType FnTy = Ctx.getFunctionType(RetTy, ArgTypes, > > > > diff --git a/clang/lib/CodeGen/SwiftCallingConv.cpp > > b/clang/lib/CodeGen/SwiftCallingConv.cpp > > index e42859af05a2b..a7d7c9357272d 100644 > > --- a/clang/lib/CodeGen/SwiftCallingConv.cpp > > +++ b/clang/lib/CodeGen/SwiftCallingConv.cpp > > @@ -124,7 +124,7 @@ void SwiftAggLowering::addTypedData(const RecordDecl > > *record, CharUnits begin, > > const ASTRecordLayout &layout) { > > // Unions are a special case. > > if (record->isUnion()) { > > - for (auto field : record->fields()) { > > + for (auto *field : record->fields()) { > > if (field->isBitField()) { > > addBitFieldData(field, begin, 0); > > } else { > > @@ -161,7 +161,7 @@ void SwiftAggLowering::addTypedData(const RecordDecl > > *record, CharUnits begin, > > } > > > > // Add fields. > > - for (auto field : record->fields()) { > > + for (auto *field : record->fields()) { > > auto fieldOffsetInBits = layout.getFieldOffset(field->getFieldIndex()); > > if (field->isBitField()) { > > addBitFieldData(field, begin, fieldOffsetInBits); > > > > diff --git a/clang/lib/Driver/Compilation.cpp > > b/clang/lib/Driver/Compilation.cpp > > index ecf3da284b2a7..90d2e0659a39a 100644 > > --- a/clang/lib/Driver/Compilation.cpp > > +++ b/clang/lib/Driver/Compilation.cpp > > @@ -102,7 +102,7 @@ Compilation::getArgsForToolChain(const ToolChain *TC, > > StringRef BoundArch, > > } > > > > // Add allocated arguments to the final DAL. > > - for (auto ArgPtr : AllocatedArgs) > > + for (auto *ArgPtr : AllocatedArgs) > > Entry->AddSynthesizedArg(ArgPtr); > > } > > > > > > diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp > > index ba359a1d31a53..0a61b5e2d62d4 100644 > > --- a/clang/lib/Driver/Driver.cpp > > +++ b/clang/lib/Driver/Driver.cpp > > @@ -3715,7 +3715,7 @@ class OffloadingActionBuilder final { > > /*BoundArch=*/nullptr); > > // Propagate active offloading kinds for each input to the link > > action. > > // Each input may have > > diff erent active offloading kind. > > - for (auto A : HostAction->inputs()) { > > + for (auto *A : HostAction->inputs()) { > > auto ArgLoc = HostActionToInputArgMap.find(A); > > if (ArgLoc == HostActionToInputArgMap.end()) > > continue; > > > > diff --git a/clang/lib/Driver/ToolChains/Clang.cpp > > b/clang/lib/Driver/ToolChains/Clang.cpp > > index 2dd9ac01b3ef9..99a8642cfd85b 100644 > > --- a/clang/lib/Driver/ToolChains/Clang.cpp > > +++ b/clang/lib/Driver/ToolChains/Clang.cpp > > @@ -4974,13 +4974,13 @@ void Clang::ConstructJob(Compilation &C, const > > JobAction &JA, > > // Since we can't access frontend flags through hasArg, let's manually > > iterate > > // through them. > > bool FoundAnalyzerConfig = false; > > - for (auto Arg : Args.filtered(options::OPT_Xclang)) > > + for (auto *Arg : Args.filtered(options::OPT_Xclang)) > > if (StringRef(Arg->getValue()) == "-analyzer-config") { > > FoundAnalyzerConfig = true; > > break; > > } > > if (!FoundAnalyzerConfig) > > - for (auto Arg : Args.filtered(options::OPT_Xanalyzer)) > > + for (auto *Arg : Args.filtered(options::OPT_Xanalyzer)) > > if (StringRef(Arg->getValue()) == "-analyzer-config") { > > FoundAnalyzerConfig = true; > > break; > > @@ -6924,7 +6924,7 @@ void Clang::ConstructJob(Compilation &C, const > > JobAction &JA, > > // do not pass it to other cc1 commands when save-temps is enabled > > if (C.getDriver().isSaveTempsEnabled() && > > !isa<PreprocessJobAction>(JA)) { > > - for (auto Arg : Args.filtered(options::OPT_Xclang)) { > > + for (auto *Arg : Args.filtered(options::OPT_Xclang)) { > > Arg->claim(); > > if (StringRef(Arg->getValue()) != "-finclude-default-header") > > CmdArgs.push_back(Arg->getValue()); > > > > diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp > > b/clang/lib/Driver/ToolChains/CommonArgs.cpp > > index 3b084dfdbfa2c..4760a6f528627 100644 > > --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp > > +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp > > @@ -2161,7 +2161,7 @@ void tools::addHIPRuntimeLibArgs(const ToolChain &TC, > > TC.AddHIPRuntimeLibArgs(Args, CmdArgs); > > } else { > > // Claim "no HIP libraries" arguments if any > > - for (auto Arg : Args.filtered(options::OPT_no_hip_rt)) { > > + for (auto *Arg : Args.filtered(options::OPT_no_hip_rt)) { > > Arg->claim(); > > } > > } > > > > diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp > > b/clang/lib/Driver/ToolChains/Gnu.cpp > > index 9730109dd993f..047ec67f95e12 100644 > > --- a/clang/lib/Driver/ToolChains/Gnu.cpp > > +++ b/clang/lib/Driver/ToolChains/Gnu.cpp > > @@ -1369,7 +1369,7 @@ static bool findMipsMtiMultilibs(const > > Multilib::flags_list &Flags, > > {"/../../../../mips-mti-linux-gnu/lib" + M.gccSuffix()}); > > }); > > } > > - for (auto Candidate : {&MtiMipsMultilibsV1, &MtiMipsMultilibsV2}) { > > + for (auto *Candidate : {&MtiMipsMultilibsV1, &MtiMipsMultilibsV2}) { > > if (Candidate->select(Flags, Result.SelectedMultilib)) { > > Result.Multilibs = *Candidate; > > return true; > > @@ -1462,7 +1462,7 @@ static bool findMipsImgMultilibs(const > > Multilib::flags_list &Flags, > > {"/../../../../mips-img-linux-gnu/lib" + M.gccSuffix()}); > > }); > > } > > - for (auto Candidate : {&ImgMultilibsV1, &ImgMultilibsV2}) { > > + for (auto *Candidate : {&ImgMultilibsV1, &ImgMultilibsV2}) { > > if (Candidate->select(Flags, Result.SelectedMultilib)) { > > Result.Multilibs = *Candidate; > > return true; > > > > diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp > > b/clang/lib/Driver/ToolChains/HIPAMD.cpp > > index 35728ffb0b55a..7791074d7c92a 100644 > > --- a/clang/lib/Driver/ToolChains/HIPAMD.cpp > > +++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp > > @@ -202,7 +202,7 @@ HIPAMDToolChain::HIPAMDToolChain(const Driver &D, const > > llvm::Triple &Triple, > > if (!Args.hasFlag(options::OPT_fgpu_sanitize, > > options::OPT_fno_gpu_sanitize, > > true)) > > return; > > - for (auto A : Args.filtered(options::OPT_fsanitize_EQ)) { > > + for (auto *A : Args.filtered(options::OPT_fsanitize_EQ)) { > > SanitizerMask K = parseSanitizerValue(A->getValue(), > > /*AllowGroups=*/false); > > if (K != SanitizerKind::Address) > > > > D.getDiags().Report(clang::diag::warn_drv_unsupported_option_for_target) > > > > diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp > > index 1108a02407e4f..8197fccd2f3e3 100644 > > --- a/clang/lib/Format/Format.cpp > > +++ b/clang/lib/Format/Format.cpp > > @@ -2539,7 +2539,7 @@ class ObjCHeaderStyleGuesser : public TokenAnalyzer { > > "UIView", > > }; > > > > - for (auto Line : AnnotatedLines) { > > + for (auto *Line : AnnotatedLines) { > > if (Line->First && (Line->First->TokenText.startswith("#") || > > Line->First->TokenText == "__pragma" || > > Line->First->TokenText == "_Pragma")) { > > > > diff --git a/clang/lib/Frontend/FrontendActions.cpp > > b/clang/lib/Frontend/FrontendActions.cpp > > index f833541caa25c..cff61d7929a1b 100644 > > --- a/clang/lib/Frontend/FrontendActions.cpp > > +++ b/clang/lib/Frontend/FrontendActions.cpp > > @@ -920,12 +920,12 @@ void DumpModuleInfoAction::ExecuteAction() { > > if (Primary) { > > if (!Primary->submodules().empty()) > > Out << " Sub Modules:\n"; > > - for (auto MI : Primary->submodules()) { > > + for (auto *MI : Primary->submodules()) { > > PrintSubMapEntry(MI->Name, MI->Kind); > > } > > if (!Primary->Imports.empty()) > > Out << " Imports:\n"; > > - for (auto IMP : Primary->Imports) { > > + for (auto *IMP : Primary->Imports) { > > PrintSubMapEntry(IMP->Name, IMP->Kind); > > } > > if (!Primary->Exports.empty()) > > > > diff --git a/clang/lib/Index/USRGeneration.cpp > > b/clang/lib/Index/USRGeneration.cpp > > index a206642e4b587..c1120058235c6 100644 > > --- a/clang/lib/Index/USRGeneration.cpp > > +++ b/clang/lib/Index/USRGeneration.cpp > > @@ -258,7 +258,7 @@ void USRGenerator::VisitFunctionDecl(const FunctionDecl > > *D) { > > } > > > > // Mangle in type information for the arguments. > > - for (auto PD : D->parameters()) { > > + for (auto *PD : D->parameters()) { > > Out << '#'; > > VisitType(PD->getType()); > > } > > > > diff --git a/clang/lib/Sema/IdentifierResolver.cpp > > b/clang/lib/Sema/IdentifierResolver.cpp > > index 9081714c893f5..4ee10f9fddfbe 100644 > > --- a/clang/lib/Sema/IdentifierResolver.cpp > > +++ b/clang/lib/Sema/IdentifierResolver.cpp > > @@ -287,7 +287,7 @@ static DeclMatchKind compareDeclarations(NamedDecl > > *Existing, NamedDecl *New) { > > > > // If the existing declaration is somewhere in the previous declaration > > // chain of the new declaration, then prefer the new declaration. > > - for (auto RD : New->redecls()) { > > + for (auto *RD : New->redecls()) { > > if (RD == Existing) > > return DMK_Replace; > > > > > > diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp > > index 1158685681af1..5215b60defe8a 100644 > > --- a/clang/lib/Sema/Sema.cpp > > +++ b/clang/lib/Sema/Sema.cpp > > @@ -1315,7 +1315,7 @@ void Sema::ActOnEndOfTranslationUnit() { > > Consumer.CompleteTentativeDefinition(VD); > > } > > > > - for (auto D : ExternalDeclarations) { > > + for (auto *D : ExternalDeclarations) { > > if (!D || D->isInvalidDecl() || D->getPreviousDecl() || !D->isUsed()) > > continue; > > > > @@ -1784,7 +1784,7 @@ void Sema::emitDeferredDiags() { > > return; > > > > DeferredDiagnosticsEmitter DDE(*this); > > - for (auto D : DeclsToCheckForDeferredDiags) > > + for (auto *D : DeclsToCheckForDeferredDiags) > > DDE.checkRecordedDecl(D); > > } > > > > > > diff --git a/clang/lib/Sema/SemaCodeComplete.cpp > > b/clang/lib/Sema/SemaCodeComplete.cpp > > index 6d5769a396277..c80605ba7f5a7 100644 > > --- a/clang/lib/Sema/SemaCodeComplete.cpp > > +++ b/clang/lib/Sema/SemaCodeComplete.cpp > > @@ -4201,7 +4201,7 @@ static void MaybeAddOverrideCalls(Sema &S, > > DeclContext *InContext, > > > > // We need to have names for all of the parameters, if we're going to > > // generate a forwarding call. > > - for (auto P : Method->parameters()) > > + for (auto *P : Method->parameters()) > > if (!P->getDeclName()) > > return; > > > > @@ -4229,7 +4229,7 @@ static void MaybeAddOverrideCalls(Sema &S, > > DeclContext *InContext, > > Results.getAllocator().CopyString(Overridden->getNameAsString())); > > Builder.AddChunk(CodeCompletionString::CK_LeftParen); > > bool FirstParam = true; > > - for (auto P : Method->parameters()) { > > + for (auto *P : Method->parameters()) { > > if (FirstParam) > > FirstParam = false; > > else > > > > diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp > > index 1a29e6bb86f39..3a84761616163 100644 > > --- a/clang/lib/Sema/SemaDecl.cpp > > +++ b/clang/lib/Sema/SemaDecl.cpp > > @@ -8088,7 +8088,7 @@ void Sema::CheckShadow(NamedDecl *D, NamedDecl > > *ShadowedDecl, > > if (shadowedVar->isExternC()) { > > // For shadowing external vars, make sure that we point to the global > > // declaration, not a locally scoped extern declaration. > > - for (auto I : shadowedVar->redecls()) > > + for (auto *I : shadowedVar->redecls()) > > if (I->isFileVarDecl()) { > > ShadowedDecl = I; > > break; > > @@ -10463,7 +10463,7 @@ Sema::ActOnFunctionDeclarator(Scope *S, Declarator > > &D, DeclContext *DC, > > } > > > > llvm::SmallPtrSet<const Type *, 16> ValidTypes; > > - for (auto Param : NewFD->parameters()) > > + for (auto *Param : NewFD->parameters()) > > checkIsValidOpenCLKernelParameter(*this, D, Param, ValidTypes); > > > > if (getLangOpts().OpenCLCPlusPlus) { > > @@ -11972,7 +11972,7 @@ namespace { > > // Track and increment the index here. > > isInitList = true; > > InitFieldIndex.push_back(0); > > - for (auto Child : InitList->children()) { > > + for (auto *Child : InitList->children()) { > > CheckExpr(cast<Expr>(Child)); > > ++InitFieldIndex.back(); > > } > > @@ -12453,7 +12453,7 @@ void Sema::checkNonTrivialCUnionInInitializer(const > > Expr *Init, > > InitType.hasNonTrivialToPrimitiveCopyCUnion()) && > > "shouldn't be called if type doesn't have a non-trivial C > > struct"); > > if (auto *ILE = dyn_cast<InitListExpr>(Init)) { > > - for (auto I : ILE->inits()) { > > + for (auto *I : ILE->inits()) { > > if (!I->getType().hasNonTrivialToPrimitiveDefaultInitializeCUnion() > > && > > !I->getType().hasNonTrivialToPrimitiveCopyCUnion()) > > continue; > > @@ -14915,7 +14915,7 @@ Decl *Sema::ActOnStartOfFunctionDef(Scope > > *FnBodyScope, Decl *D, > > } > > > > // Introduce our parameters into the function scope > > - for (auto Param : FD->parameters()) { > > + for (auto *Param : FD->parameters()) { > > Param->setOwningFunction(FD); > > > > // If this has an identifier, add it to the scope stack. > > > > diff --git a/clang/lib/Sema/SemaDeclAttr.cpp > > b/clang/lib/Sema/SemaDeclAttr.cpp > > index 0e9b27fff180a..580ecf8995db1 100644 > > --- a/clang/lib/Sema/SemaDeclAttr.cpp > > +++ b/clang/lib/Sema/SemaDeclAttr.cpp > > @@ -7256,7 +7256,7 @@ static void handleAVRSignalAttr(Sema &S, Decl *D, > > const ParsedAttr &AL) { > > > > static void handleBPFPreserveAIRecord(Sema &S, RecordDecl *RD) { > > // Add preserve_access_index attribute to all fields and inner records. > > - for (auto D : RD->decls()) { > > + for (auto *D : RD->decls()) { > > if (D->hasAttr<BPFPreserveAccessIndexAttr>()) > > continue; > > > > > > diff --git a/clang/lib/Sema/SemaDeclCXX.cpp > > b/clang/lib/Sema/SemaDeclCXX.cpp > > index 7c70255fd3e5d..f7e20759e3d6e 100644 > > --- a/clang/lib/Sema/SemaDeclCXX.cpp > > +++ b/clang/lib/Sema/SemaDeclCXX.cpp > > @@ -3777,7 +3777,7 @@ namespace { > > > > void CheckInitListExpr(InitListExpr *ILE) { > > InitFieldIndex.push_back(0); > > - for (auto Child : ILE->children()) { > > + for (auto *Child : ILE->children()) { > > if (InitListExpr *SubList = dyn_cast<InitListExpr>(Child)) { > > CheckInitListExpr(SubList); > > } else { > > @@ -3848,7 +3848,7 @@ namespace { > > Expr *Callee = E->getCallee(); > > if (isa<MemberExpr>(Callee)) { > > HandleValue(Callee, false /*AddressOf*/); > > - for (auto Arg : E->arguments()) > > + for (auto *Arg : E->arguments()) > > Visit(Arg); > > return; > > } > > @@ -3873,7 +3873,7 @@ namespace { > > return Inherited::VisitCXXOperatorCallExpr(E); > > > > Visit(Callee); > > - for (auto Arg : E->arguments()) > > + for (auto *Arg : E->arguments()) > > HandleValue(Arg->IgnoreParenImpCasts(), false /*AddressOf*/); > > } > > > > @@ -15582,7 +15582,7 @@ ExprResult > > Sema::BuildCXXDefaultInitExpr(SourceLocation Loc, FieldDecl *Field) { > > ClassPattern->lookup(Field->getDeclName()); > > > > FieldDecl *Pattern = nullptr; > > - for (auto L : Lookup) { > > + for (auto *L : Lookup) { > > if (isa<FieldDecl>(L)) { > > Pattern = cast<FieldDecl>(L); > > break; > > @@ -15931,7 +15931,7 @@ bool > > Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { > > diag::err_operator_overload_static) << > > FnDecl->getDeclName(); > > } else { > > bool ClassOrEnumParam = false; > > - for (auto Param : FnDecl->parameters()) { > > + for (auto *Param : FnDecl->parameters()) { > > QualType ParamType = Param->getType().getNonReferenceType(); > > if (ParamType->isDependentType() || ParamType->isRecordType() || > > ParamType->isEnumeralType()) { > > @@ -15954,7 +15954,7 @@ bool > > Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { > > // operator (CWG2507) allow default arguments. > > if (Op != OO_Call) { > > ParmVarDecl *FirstDefaultedParam = nullptr; > > - for (auto Param : FnDecl->parameters()) { > > + for (auto *Param : FnDecl->parameters()) { > > if (Param->hasDefaultArg()) { > > FirstDefaultedParam = Param; > > break; > > @@ -16260,7 +16260,7 @@ bool > > Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) { > > > > // A parameter-declaration-clause containing a default argument is not > > // equivalent to any of the permitted forms. > > - for (auto Param : FnDecl->parameters()) { > > + for (auto *Param : FnDecl->parameters()) { > > if (Param->hasDefaultArg()) { > > Diag(Param->getDefaultArgRange().getBegin(), > > diag::err_literal_operator_default_argument) > > @@ -17968,7 +17968,7 @@ bool Sema::DefineUsedVTables() { > > // definition. > > bool IsExplicitInstantiationDeclaration = > > ClassTSK == TSK_ExplicitInstantiationDeclaration; > > - for (auto R : Class->redecls()) { > > + for (auto *R : Class->redecls()) { > > TemplateSpecializationKind TSK > > = cast<CXXRecordDecl>(R)->getTemplateSpecializationKind(); > > if (TSK == TSK_ExplicitInstantiationDeclaration) > > > > diff --git a/clang/lib/Sema/SemaDeclObjC.cpp > > b/clang/lib/Sema/SemaDeclObjC.cpp > > index ed33d9ffe8312..c55cb7842072b 100644 > > --- a/clang/lib/Sema/SemaDeclObjC.cpp > > +++ b/clang/lib/Sema/SemaDeclObjC.cpp > > @@ -782,7 +782,7 @@ ObjCTypeParamList *Sema::actOnObjCTypeParamList(Scope > > *S, > > // scope until later (after the instance variable block), but we want the > > // diagnostics to occur right after we parse the type parameter list. > > llvm::SmallDenseMap<IdentifierInfo *, ObjCTypeParamDecl *> knownParams; > > - for (auto typeParam : typeParams) { > > + for (auto *typeParam : typeParams) { > > auto known = knownParams.find(typeParam->getIdentifier()); > > if (known != knownParams.end()) { > > Diag(typeParam->getLocation(), diag::err_objc_type_param_redecl) > > @@ -803,7 +803,7 @@ ObjCTypeParamList *Sema::actOnObjCTypeParamList(Scope > > *S, > > } > > > > void Sema::popObjCTypeParamList(Scope *S, ObjCTypeParamList > > *typeParamList) { > > - for (auto typeParam : *typeParamList) { > > + for (auto *typeParam : *typeParamList) { > > if (!typeParam->isInvalidDecl()) { > > S->RemoveDecl(typeParam); > > IdResolver.RemoveDecl(typeParam); > > @@ -1029,7 +1029,7 @@ ObjCInterfaceDecl *Sema::ActOnStartClassInterface( > > > > // Clone the type parameter list. > > SmallVector<ObjCTypeParamDecl *, 4> clonedTypeParams; > > - for (auto typeParam : *prevTypeParamList) { > > + for (auto *typeParam : *prevTypeParamList) { > > clonedTypeParams.push_back( > > ObjCTypeParamDecl::Create( > > Context, > > @@ -1502,7 +1502,7 @@ void Sema::actOnObjCTypeArgsOrProtocolQualifiers( > > llvm::SmallPtrSet<ObjCProtocolDecl*, 8> knownProtocols; > > Context.CollectInheritedProtocols(baseClass, knownProtocols); > > bool allProtocolsDeclared = true; > > - for (auto proto : protocols) { > > + for (auto *proto : protocols) { > > if (knownProtocols.count(static_cast<ObjCProtocolDecl *>(proto)) > > == 0) { > > allProtocolsDeclared = false; > > break; > > @@ -3855,7 +3855,7 @@ static void DiagnoseVariableSizedIvars(Sema &S, > > ObjCContainerDecl *OCD) { > > > > // Check if variable sized ivar is in interface and visible to > > subclasses. > > if (!isa<ObjCInterfaceDecl>(OCD)) { > > - for (auto ivar : Ivars) { > > + for (auto *ivar : Ivars) { > > if (!ivar->isInvalidDecl() && IsVariableSizedType(ivar->getType())) { > > S.Diag(ivar->getLocation(), > > diag::warn_variable_sized_ivar_visibility) > > << ivar->getDeclName() << ivar->getType(); > > @@ -3990,7 +3990,7 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, > > ArrayRef<Decl *> allMethods, > > // they are overridden by an explicit method that is encountered > > // later. > > if (auto *OID = dyn_cast<ObjCImplementationDecl>(CurContext)) { > > - for (auto PropImpl : OID->property_impls()) { > > + for (auto *PropImpl : OID->property_impls()) { > > if (auto *Getter = PropImpl->getGetterMethodDecl()) > > if (Getter->isSynthesizedAccessorStub()) > > OID->addDecl(Getter); > > > > diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp > > index f124ad3bc08d0..43c27c0ddd5e9 100644 > > --- a/clang/lib/Sema/SemaExpr.cpp > > +++ b/clang/lib/Sema/SemaExpr.cpp > > @@ -136,7 +136,7 @@ void Sema::NoteDeletedFunction(FunctionDecl *Decl) { > > /// Determine whether a FunctionDecl was ever declared with an > > /// explicit storage class. > > static bool hasAnyExplicitStorageClass(const FunctionDecl *D) { > > - for (auto I : D->redecls()) { > > + for (auto *I : D->redecls()) { > > if (I->getStorageClass() != SC_None) > > return true; > > } > > @@ -16289,7 +16289,7 @@ void Sema::ActOnBlockArguments(SourceLocation > > CaretLoc, Declarator &ParamInfo, > > ProcessDeclAttributes(CurScope, CurBlock->TheDecl, ParamInfo); > > > > // Put the parameter variables in scope. > > - for (auto AI : CurBlock->TheDecl->parameters()) { > > + for (auto *AI : CurBlock->TheDecl->parameters()) { > > AI->setOwningFunction(CurBlock->TheDecl); > > > > // If this has an identifier, add it to the scope stack. > > @@ -17670,7 +17670,7 @@ HandleImmediateInvocations(Sema &SemaRef, > > for (auto CE : Rec.ImmediateInvocationCandidates) > > if (!CE.getInt()) > > EvaluateAndDiagnoseImmediateInvocation(SemaRef, CE); > > - for (auto DR : Rec.ReferenceToConsteval) { > > + for (auto *DR : Rec.ReferenceToConsteval) { > > auto *FD = cast<FunctionDecl>(DR->getDecl()); > > SemaRef.Diag(DR->getBeginLoc(), > > diag::err_invalid_consteval_take_address) > > << FD; > > @@ -18111,7 +18111,7 @@ void Sema::MarkFunctionReferenced(SourceLocation > > Loc, FunctionDecl *Func, > > } > > } else { > > // Walk redefinitions, as some of them may be instantiable. > > - for (auto i : Func->redecls()) { > > + for (auto *i : Func->redecls()) { > > if (!i->isUsed(false) && i->isImplicitlyInstantiable()) > > MarkFunctionReferenced(Loc, i, MightBeOdrUse); > > } > > > > diff --git a/clang/lib/Sema/SemaExprCXX.cpp > > b/clang/lib/Sema/SemaExprCXX.cpp > > index c43c9dc21bd5e..bc950ab7c4a7a 100644 > > --- a/clang/lib/Sema/SemaExprCXX.cpp > > +++ b/clang/lib/Sema/SemaExprCXX.cpp > > @@ -8467,7 +8467,7 @@ class TransformTypos : public > > TreeTransform<TransformTypos> { > > /// > > /// Returns true if there are any untried correction combinations. > > bool CheckAndAdvanceTypoExprCorrectionStreams() { > > - for (auto TE : TypoExprs) { > > + for (auto *TE : TypoExprs) { > > auto &State = SemaRef.getTypoExprState(TE); > > TransformCache.erase(TE); > > if (!State.Consumer->hasMadeAnyCorrectionProgress()) > > @@ -8534,7 +8534,7 @@ class TransformTypos : public > > TreeTransform<TransformTypos> { > > // TypoExprs were created recursively and thus won't be in our > > // Sema's TypoExprs - they were created in our > > `RecursiveTransformLoop`. > > auto &SemaTypoExprs = SemaRef.TypoExprs; > > - for (auto TE : TypoExprs) { > > + for (auto *TE : TypoExprs) { > > TransformCache.erase(TE); > > SemaRef.clearDelayedTypo(TE); > > > > > > diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp > > index b5cf96af07afa..8f21cf5cc7d7a 100644 > > --- a/clang/lib/Sema/SemaInit.cpp > > +++ b/clang/lib/Sema/SemaInit.cpp > > @@ -5977,7 +5977,7 @@ void InitializationSequence::InitializeFrom(Sema &S, > > !Context.hasSameUnqualifiedType(SourceType, DestType))) { > > > > llvm::SmallVector<Expr *> InitArgs; > > - for (auto Arg : Args) { > > + for (auto *Arg : Args) { > > if (Arg->getType()->isExtVectorType()) { > > const auto *VTy = Arg->getType()->castAs<ExtVectorType>(); > > unsigned Elm = VTy->getNumElements(); > > > > diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp > > index aca0b7a147730..1cf44bd694c54 100644 > > --- a/clang/lib/Sema/SemaLambda.cpp > > +++ b/clang/lib/Sema/SemaLambda.cpp > > @@ -418,7 +418,7 @@ CXXMethodDecl > > *Sema::startLambdaDefinition(CXXRecordDecl *Class, > > CheckParmsForFunctionDef(Params, > > /*CheckParameterNames=*/false); > > > > - for (auto P : Method->parameters()) > > + for (auto *P : Method->parameters()) > > P->setOwningFunction(Method); > > } > > > > > > diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp > > index 22d72c3251a0c..70a32bd737160 100644 > > --- a/clang/lib/Sema/SemaLookup.cpp > > +++ b/clang/lib/Sema/SemaLookup.cpp > > @@ -156,7 +156,7 @@ namespace { > > void addUsingDirectives(DeclContext *DC, DeclContext *EffectiveDC) { > > SmallVector<DeclContext*, 4> queue; > > while (true) { > > - for (auto UD : DC->using_directives()) { > > + for (auto *UD : DC->using_directives()) { > > DeclContext *NS = UD->getNominatedNamespace(); > > if (SemaRef.isVisible(UD) && visited.insert(NS).second) { > > addUsingDirective(UD, EffectiveDC); > > @@ -2018,7 +2018,7 @@ static NamedDecl *findAcceptableDecl(Sema &SemaRef, > > NamedDecl *D, > > unsigned IDNS) { > > assert(!LookupResult::isAvailableForLookup(SemaRef, D) && "not in slow > > case"); > > > > - for (auto RD : D->redecls()) { > > + for (auto *RD : D->redecls()) { > > // Don't bother with extra checks if we already know this one isn't > > visible. > > if (RD == D) > > continue; > > @@ -2362,7 +2362,7 @@ static bool LookupQualifiedNameInUsingDirectives(Sema > > &S, LookupResult &R, > > continue; > > } > > > > - for (auto I : ND->using_directives()) { > > + for (auto *I : ND->using_directives()) { > > NamespaceDecl *Nom = I->getNominatedNamespace(); > > if (S.isVisible(I) && Visited.insert(Nom).second) > > Queue.push_back(Nom); > > @@ -4161,7 +4161,7 @@ class LookupVisibleHelper { > > // Traverse using directives for qualified name lookup. > > if (QualifiedNameLookup) { > > ShadowContextRAII Shadow(Visited); > > - for (auto I : Ctx->using_directives()) { > > + for (auto *I : Ctx->using_directives()) { > > if (!Result.getSema().isVisible(I)) > > continue; > > lookupInDeclContext(I->getNominatedNamespace(), Result, > > > > diff --git a/clang/lib/Sema/SemaObjCProperty.cpp > > b/clang/lib/Sema/SemaObjCProperty.cpp > > index 118afb81dd722..e915c7ed88a84 100644 > > --- a/clang/lib/Sema/SemaObjCProperty.cpp > > +++ b/clang/lib/Sema/SemaObjCProperty.cpp > > @@ -1028,7 +1028,7 @@ static bool > > hasWrittenStorageAttribute(ObjCPropertyDecl *Prop, > > > > // Find the corresponding property in the primary class definition. > > auto OrigClass = Category->getClassInterface(); > > - for (auto Found : OrigClass->lookup(Prop->getDeclName())) { > > + for (auto *Found : OrigClass->lookup(Prop->getDeclName())) { > > if (ObjCPropertyDecl *OrigProp = dyn_cast<ObjCPropertyDecl>(Found)) > > return OrigProp->getPropertyAttributesAsWritten() & OwnershipMask; > > } > > > > diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp > > index a8de8c2f2c829..d05380b30e47f 100644 > > --- a/clang/lib/Sema/SemaOpenMP.cpp > > +++ b/clang/lib/Sema/SemaOpenMP.cpp > > @@ -18422,7 +18422,7 @@ static T filterLookupForUDReductionAndMapper( > > static NamedDecl *findAcceptableDecl(Sema &SemaRef, NamedDecl *D) { > > assert(!LookupResult::isVisible(SemaRef, D) && "not in slow case"); > > > > - for (auto RD : D->redecls()) { > > + for (auto *RD : D->redecls()) { > > // Don't bother with extra checks if we already know this one isn't > > visible. > > if (RD == D) > > continue; > > > > diff --git a/clang/lib/Sema/SemaOverload.cpp > > b/clang/lib/Sema/SemaOverload.cpp > > index 91e308d0d0fee..352738c850f23 100644 > > --- a/clang/lib/Sema/SemaOverload.cpp > > +++ b/clang/lib/Sema/SemaOverload.cpp > > @@ -14204,7 +14204,7 @@ ExprResult > > Sema::CreateOverloadedArraySubscriptExpr(SourceLocation LLoc, > > MultiExprArg ArgExpr) { > > SmallVector<Expr *, 2> Args; > > Args.push_back(Base); > > - for (auto e : ArgExpr) { > > + for (auto *e : ArgExpr) { > > Args.push_back(e); > > } > > DeclarationName OpName = > > > > diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp > > b/clang/lib/Sema/SemaTemplateDeduction.cpp > > index e8837d88f97dd..3419eb1eec6b4 100644 > > --- a/clang/lib/Sema/SemaTemplateDeduction.cpp > > +++ b/clang/lib/Sema/SemaTemplateDeduction.cpp > > @@ -3147,7 +3147,7 @@ Sema::SubstituteExplicitTemplateArguments( > > if (ExplicitTemplateArgs.size() == 0) { > > // No arguments to substitute; just copy over the parameter types and > > // fill in the function type. > > - for (auto P : Function->parameters()) > > + for (auto *P : Function->parameters()) > > ParamTypes.push_back(P->getType()); > > > > if (FunctionType) > > > > diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp > > b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp > > index 24ea3254cb272..b0256a16babe7 100644 > > --- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp > > +++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp > > @@ -6398,7 +6398,7 @@ void Sema::PerformPendingInstantiations(bool > > LocalOnly) { > > > > void Sema::PerformDependentDiagnostics(const DeclContext *Pattern, > > const MultiLevelTemplateArgumentList &TemplateArgs) > > { > > - for (auto DD : Pattern->ddiags()) { > > + for (auto *DD : Pattern->ddiags()) { > > switch (DD->getKind()) { > > case DependentDiagnostic::Access: > > HandleDependentAccessCheck(*DD, TemplateArgs); > > > > diff --git a/clang/lib/Serialization/ASTReader.cpp > > b/clang/lib/Serialization/ASTReader.cpp > > index eef8f9fdb07f1..5d1ee45c10de5 100644 > > --- a/clang/lib/Serialization/ASTReader.cpp > > +++ b/clang/lib/Serialization/ASTReader.cpp > > @@ -8032,7 +8032,7 @@ IdentifierInfo *ASTReader::get(StringRef Name) { > > // lookups). Perform the lookup in PCH files, though, since we don't > > build > > // a complete initial identifier table if we're carrying on from a PCH. > > if (PP.getLangOpts().CPlusPlus) { > > - for (auto F : ModuleMgr.pch_modules()) > > + for (auto *F : ModuleMgr.pch_modules()) > > if (Visitor(*F)) > > break; > > } else { > > @@ -9645,7 +9645,7 @@ void ASTReader::diagnoseOdrViolations() { > > bool Found = false; > > const Decl *DCanon = D->getCanonicalDecl(); > > > > - for (auto RI : D->redecls()) { > > + for (auto *RI : D->redecls()) { > > if (RI->getLexicalDeclContext() == CanonDef) { > > Found = true; > > break; > > > > diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp > > b/clang/lib/Serialization/ASTWriterDecl.cpp > > index 35b8db27bd0eb..14985cc32d0e4 100644 > > --- a/clang/lib/Serialization/ASTWriterDecl.cpp > > +++ b/clang/lib/Serialization/ASTWriterDecl.cpp > > @@ -167,7 +167,7 @@ namespace clang { > > } > > > > Record.push_back(typeParams->size()); > > - for (auto typeParam : *typeParams) { > > + for (auto *typeParam : *typeParams) { > > Record.AddDeclRef(typeParam); > > } > > Record.AddSourceLocation(typeParams->getLAngleLoc()); > > @@ -661,7 +661,7 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { > > } > > > > Record.push_back(D->param_size()); > > - for (auto P : D->parameters()) > > + for (auto *P : D->parameters()) > > Record.AddDeclRef(P); > > Code = serialization::DECL_FUNCTION; > > } > > > > diff --git a/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp > > b/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp > > index fea35d03cb813..c9b17a56b224d 100644 > > --- a/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp > > +++ b/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp > > @@ -118,7 +118,7 @@ void CFErrorFunctionChecker::checkASTDecl(const > > FunctionDecl *D, > > II = &D->getASTContext().Idents.get("CFErrorRef"); > > > > bool hasCFError = false; > > - for (auto I : D->parameters()) { > > + for (auto *I : D->parameters()) { > > if (IsCFError(I->getType(), II)) { > > hasCFError = true; > > break; > > > > diff --git a/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp > > b/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp > > index 1d8835f6b4741..8b4004d059e81 100644 > > --- a/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp > > +++ b/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp > > @@ -907,7 +907,7 @@ void NullabilityChecker::checkPostObjCMessage(const > > ObjCMethodCall &M, > > // this class of methods reduced the emitted diagnostics by about 30% > > on > > // some projects (and all of that was false positives). > > if (Name.contains("String")) { > > - for (auto Param : M.parameters()) { > > + for (auto *Param : M.parameters()) { > > if (Param->getName() == "encoding") { > > State = State->set<NullabilityMap>(ReturnRegion, > > Nullability::Contradicted); > > > > diff --git a/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp > > b/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp > > index 1aa665f0ef45d..fb90fc9c91ea3 100644 > > --- a/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp > > +++ b/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp > > @@ -368,7 +368,7 @@ class StreamChecker : public Checker<check::PreCall, > > eval::Call, > > // (and matching name) as stream functions. > > if (!Call.isGlobalCFunction()) > > return nullptr; > > - for (auto P : Call.parameters()) { > > + for (auto *P : Call.parameters()) { > > QualType T = P->getType(); > > if (!T->isIntegralOrEnumerationType() && !T->isPointerType()) > > return nullptr; > > > > diff --git > > a/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp > > b/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp > > index 05f8f6084c0b6..0fa3d6043971f 100644 > > --- a/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp > > +++ b/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp > > @@ -92,7 +92,7 @@ void UndefinedAssignmentChecker::checkBind(SVal location, > > SVal val, > > if (const auto *CD = > > dyn_cast<CXXConstructorDecl>(C.getStackFrame()->getDecl())) { > > if (CD->isImplicit()) { > > - for (auto I : CD->inits()) { > > + for (auto *I : CD->inits()) { > > if (I->getInit()->IgnoreImpCasts() == StoreE) { > > OS << "Value assigned to field '" << I->getMember()->getName() > > << "' in implicit constructor is garbage or undefined"; > > > > diff --git > > a/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp > > b/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp > > index 97f75135bf922..6b4615e189bcd 100644 > > --- a/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp > > +++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp > > @@ -69,7 +69,7 @@ class NoUncountedMemberChecker > > if (shouldSkipDecl(RD)) > > return; > > > > - for (auto Member : RD->fields()) { > > + for (auto *Member : RD->fields()) { > > const Type *MemberType = Member->getType().getTypePtrOrNull(); > > if (!MemberType) > > continue; > > > > diff --git a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp > > b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp > > index 3a8d69df7a641..57591960a1401 100644 > > --- a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp > > +++ b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp > > @@ -1124,7 +1124,7 @@ static const ObjCMethodDecl *findDefiningRedecl(const > > ObjCMethodDecl *MD) { > > > > // Find the redeclaration that defines the method. > > if (!MD->hasBody()) { > > - for (auto I : MD->redecls()) > > + for (auto *I : MD->redecls()) > > if (I->hasBody()) > > MD = cast<ObjCMethodDecl>(I); > > } > > > > diff --git a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp > > b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp > > index de90f4a71be00..994de60a732a2 100644 > > --- a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp > > +++ b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp > > @@ -616,7 +616,7 @@ void CoreEngine::enqueue(ExplodedNodeSet &Set, > > } > > > > void CoreEngine::enqueueEndOfFunction(ExplodedNodeSet &Set, const > > ReturnStmt *RS) { > > - for (auto I : Set) { > > + for (auto *I : Set) { > > // If we are in an inlined call, generate CallExitBegin node. > > if (I->getLocationContext()->getParent()) { > > I = generateCallExitBeginNode(I, RS); > > > > diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp > > b/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp > > index 5a55e81497b03..25c36e9aea24d 100644 > > --- a/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp > > +++ b/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp > > @@ -206,7 +206,7 @@ void ExprEngine::VisitObjCMessage(const ObjCMessageExpr > > *ME, > > ExplodedNodeSet dstPostCheckers; > > getCheckerManager().runCheckersForObjCMessageNil(dstPostCheckers, > > Pred, > > *Msg, *this); > > - for (auto I : dstPostCheckers) > > + for (auto *I : dstPostCheckers) > > finishArgumentConstruction(Dst, I, *Msg); > > return; > > } > > @@ -270,7 +270,7 @@ void ExprEngine::VisitObjCMessage(const ObjCMessageExpr > > *ME, > > > > // If there were constructors called for object-type arguments, clean > > them up. > > ExplodedNodeSet dstArgCleanup; > > - for (auto I : dstEval) > > + for (auto *I : dstEval) > > finishArgumentConstruction(dstArgCleanup, I, *Msg); > > > > ExplodedNodeSet dstPostvisit; > > > > diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp > > index 65d8508424320..a76046ae79193 100644 > > --- a/clang/lib/Tooling/Tooling.cpp > > +++ b/clang/lib/Tooling/Tooling.cpp > > @@ -98,7 +98,7 @@ static bool ignoreExtraCC1Commands(const > > driver::Compilation *Compilation) { > > OffloadCompilation = true; > > > > if (Jobs.size() > 1) { > > - for (auto A : Actions){ > > + for (auto *A : Actions){ > > // On MacOSX real actions may end up being wrapped in BindArchAction > > if (isa<driver::BindArchAction>(A)) > > A = *A->input_begin(); > > > > > > > > _______________________________________________ > > cfe-commits mailing list > > cfe-commits@lists.llvm.org > > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits