From: Mark de Wever Date: Tue, 12 Nov 2019 19:46:19 +0000 (+0100) Subject: [AST] Use an explicit copy in a range-based for X-Git-Tag: llvmorg-11-init~4439 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2149028c49f8af1f3d8a9d81b2081a2b302b2d9a;p=platform%2Fupstream%2Fllvm.git [AST] Use an explicit copy in a range-based for The AssociationIteratorTy type will be copied in a range-based for loop. Make the copy explicit to avoid the -Wrange-loop-analysis warning. This avoids new warnings due to D68912 adds -Wrange-loop-analysis to -Wall. Differential Revision: https://reviews.llvm.org/D70045 --- diff --git a/clang/include/clang/AST/ASTNodeTraverser.h b/clang/include/clang/AST/ASTNodeTraverser.h index 0bb2aad5..ed9fc14 100644 --- a/clang/include/clang/AST/ASTNodeTraverser.h +++ b/clang/include/clang/AST/ASTNodeTraverser.h @@ -620,7 +620,7 @@ public: Visit(E->getControllingExpr()); Visit(E->getControllingExpr()->getType()); // FIXME: remove - for (const auto &Assoc : E->associations()) { + for (const auto Assoc : E->associations()) { Visit(Assoc); } } diff --git a/clang/include/clang/AST/RecursiveASTVisitor.h b/clang/include/clang/AST/RecursiveASTVisitor.h index 8605984..9fea498 100644 --- a/clang/include/clang/AST/RecursiveASTVisitor.h +++ b/clang/include/clang/AST/RecursiveASTVisitor.h @@ -2351,7 +2351,7 @@ bool RecursiveASTVisitor::TraverseInitListExpr( // generic associations). DEF_TRAVERSE_STMT(GenericSelectionExpr, { TRY_TO(TraverseStmt(S->getControllingExpr())); - for (const GenericSelectionExpr::Association &Assoc : S->associations()) { + for (const GenericSelectionExpr::Association Assoc : S->associations()) { if (TypeSourceInfo *TSI = Assoc.getTypeSourceInfo()) TRY_TO(TraverseTypeLoc(TSI->getTypeLoc())); TRY_TO_TRAVERSE_OR_ENQUEUE_STMT(Assoc.getAssociationExpr()); diff --git a/clang/include/clang/AST/StmtDataCollectors.td b/clang/include/clang/AST/StmtDataCollectors.td index a46d271..7cb9f16 100644 --- a/clang/include/clang/AST/StmtDataCollectors.td +++ b/clang/include/clang/AST/StmtDataCollectors.td @@ -189,7 +189,7 @@ class CXXFoldExpr { } class GenericSelectionExpr { code Code = [{ - for (const GenericSelectionExpr::ConstAssociation &Assoc : S->associations()) { + for (const GenericSelectionExpr::ConstAssociation Assoc : S->associations()) { addData(Assoc.getType()); } }]; diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index 0f92d4c..603ae5f 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -1304,7 +1304,7 @@ void StmtPrinter::VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *Node){ void StmtPrinter::VisitGenericSelectionExpr(GenericSelectionExpr *Node) { OS << "_Generic("; PrintExpr(Node->getControllingExpr()); - for (const GenericSelectionExpr::Association &Assoc : Node->associations()) { + for (const GenericSelectionExpr::Association Assoc : Node->associations()) { OS << ", "; QualType T = Assoc.getType(); if (T.isNull()) diff --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp index 6f266cf..9edd9e5 100644 --- a/clang/lib/AST/StmtProfile.cpp +++ b/clang/lib/AST/StmtProfile.cpp @@ -1296,7 +1296,7 @@ void StmtProfiler::VisitBlockExpr(const BlockExpr *S) { void StmtProfiler::VisitGenericSelectionExpr(const GenericSelectionExpr *S) { VisitExpr(S); - for (const GenericSelectionExpr::ConstAssociation &Assoc : + for (const GenericSelectionExpr::ConstAssociation Assoc : S->associations()) { QualType T = Assoc.getType(); if (T.isNull()) diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index 207812c..fc27094 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -4353,7 +4353,7 @@ Expr *Sema::stripARCUnbridgedCast(Expr *e) { SmallVector subTypes; subExprs.reserve(n); subTypes.reserve(n); - for (const GenericSelectionExpr::Association &assoc : gse->associations()) { + for (const GenericSelectionExpr::Association assoc : gse->associations()) { subTypes.push_back(assoc.getTypeSourceInfo()); Expr *sub = assoc.getAssociationExpr(); if (assoc.isSelected()) diff --git a/clang/lib/Sema/SemaPseudoObject.cpp b/clang/lib/Sema/SemaPseudoObject.cpp index 6028069..5587e0d 100644 --- a/clang/lib/Sema/SemaPseudoObject.cpp +++ b/clang/lib/Sema/SemaPseudoObject.cpp @@ -145,7 +145,7 @@ namespace { assocExprs.reserve(numAssocs); assocTypes.reserve(numAssocs); - for (const GenericSelectionExpr::Association &assoc : + for (const GenericSelectionExpr::Association assoc : gse->associations()) { Expr *assocExpr = assoc.getAssociationExpr(); if (assoc.isSelected()) diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 8cf3722..bde3cef 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -9380,7 +9380,7 @@ TreeTransform::TransformGenericSelectionExpr(GenericSelectionExpr *E) { SmallVector AssocExprs; SmallVector AssocTypes; - for (const GenericSelectionExpr::Association &Assoc : E->associations()) { + for (const GenericSelectionExpr::Association Assoc : E->associations()) { TypeSourceInfo *TSI = Assoc.getTypeSourceInfo(); if (TSI) { TypeSourceInfo *AssocType = getDerived().TransformType(TSI);