From 714b9962604d459f04758b88bd45a4f708b6f130 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Fri, 14 Mar 2014 15:55:35 +0000 Subject: [PATCH] [C++11] Replacing OMPThreadPrivateDecl and OMPClause iterators varlist_begin() and varlist_end() with iterator_range varlists(). Updating all of the usages of the iterators with range-based for loops. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203937 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/DataRecursiveASTVisitor.h | 12 ++++-------- include/clang/AST/DeclOpenMP.h | 9 +++++++++ include/clang/AST/OpenMPClause.h | 10 ++++++++++ include/clang/AST/RecursiveASTVisitor.h | 12 ++++-------- lib/AST/StmtProfile.cpp | 6 ++---- lib/Sema/SemaTemplateInstantiateDecl.cpp | 6 ++---- lib/Sema/TreeTransform.h | 18 ++++++------------ lib/Serialization/ASTWriterDecl.cpp | 6 ++---- lib/Serialization/ASTWriterStmt.cpp | 18 ++++++------------ tools/libclang/CIndex.cpp | 6 ++---- 10 files changed, 47 insertions(+), 56 deletions(-) diff --git a/include/clang/AST/DataRecursiveASTVisitor.h b/include/clang/AST/DataRecursiveASTVisitor.h index a2c37b53ac..f6443e84f7 100644 --- a/include/clang/AST/DataRecursiveASTVisitor.h +++ b/include/clang/AST/DataRecursiveASTVisitor.h @@ -1389,10 +1389,8 @@ DEF_TRAVERSE_DECL(UsingDirectiveDecl, { DEF_TRAVERSE_DECL(UsingShadowDecl, { }) DEF_TRAVERSE_DECL(OMPThreadPrivateDecl, { - for (OMPThreadPrivateDecl::varlist_iterator I = D->varlist_begin(), - E = D->varlist_end(); - I != E; ++I) { - TRY_TO(TraverseStmt(*I)); + for (auto *I : D->varlists()) { + TRY_TO(TraverseStmt(I)); } }) @@ -2379,10 +2377,8 @@ bool DataRecursiveASTVisitor::VisitOMPDefaultClause(OMPDefaultClause *C template template void DataRecursiveASTVisitor::VisitOMPClauseList(T *Node) { - for (typename T::varlist_iterator I = Node->varlist_begin(), - E = Node->varlist_end(); - I != E; ++I) - TraverseStmt(*I); + for (auto *I : Node->varlists()) + TraverseStmt(I); } template diff --git a/include/clang/AST/DeclOpenMP.h b/include/clang/AST/DeclOpenMP.h index 42fe907aa1..76282a3402 100644 --- a/include/clang/AST/DeclOpenMP.h +++ b/include/clang/AST/DeclOpenMP.h @@ -64,9 +64,18 @@ public: typedef llvm::MutableArrayRef::iterator varlist_iterator; typedef ArrayRef::iterator varlist_const_iterator; + typedef llvm::iterator_range varlist_range; + typedef llvm::iterator_range varlist_const_range; unsigned varlist_size() const { return NumVars; } bool varlist_empty() const { return NumVars == 0; } + + varlist_range varlists() { + return varlist_range(varlist_begin(), varlist_end()); + } + varlist_const_range varlists() const { + return varlist_const_range(varlist_begin(), varlist_end()); + } varlist_iterator varlist_begin() { return getVars().begin(); } varlist_iterator varlist_end() { return getVars().end(); } varlist_const_iterator varlist_begin() const { return getVars().begin(); } diff --git a/include/clang/AST/OpenMPClause.h b/include/clang/AST/OpenMPClause.h index c710cddf5a..04ebb6a698 100644 --- a/include/clang/AST/OpenMPClause.h +++ b/include/clang/AST/OpenMPClause.h @@ -110,9 +110,19 @@ protected: public: typedef llvm::MutableArrayRef::iterator varlist_iterator; typedef ArrayRef::iterator varlist_const_iterator; + typedef llvm::iterator_range varlist_range; + typedef llvm::iterator_range varlist_const_range; unsigned varlist_size() const { return NumVars; } bool varlist_empty() const { return NumVars == 0; } + + varlist_range varlists() { + return varlist_range(varlist_begin(), varlist_end()); + } + varlist_const_range varlists() const { + return varlist_const_range(varlist_begin(), varlist_end()); + } + varlist_iterator varlist_begin() { return getVarRefs().begin(); } varlist_iterator varlist_end() { return getVarRefs().end(); } varlist_const_iterator varlist_begin() const { return getVarRefs().begin(); } diff --git a/include/clang/AST/RecursiveASTVisitor.h b/include/clang/AST/RecursiveASTVisitor.h index d24efbf501..259e97766f 100644 --- a/include/clang/AST/RecursiveASTVisitor.h +++ b/include/clang/AST/RecursiveASTVisitor.h @@ -1476,10 +1476,8 @@ DEF_TRAVERSE_DECL(UsingDirectiveDecl, { DEF_TRAVERSE_DECL(UsingShadowDecl, { }) DEF_TRAVERSE_DECL(OMPThreadPrivateDecl, { - for (OMPThreadPrivateDecl::varlist_iterator I = D->varlist_begin(), - E = D->varlist_end(); - I != E; ++I) { - TRY_TO(TraverseStmt(*I)); + for (auto *I : D->varlists()) { + TRY_TO(TraverseStmt(I)); } }) @@ -2403,10 +2401,8 @@ bool RecursiveASTVisitor::VisitOMPDefaultClause(OMPDefaultClause *C) { template template void RecursiveASTVisitor::VisitOMPClauseList(T *Node) { - for (typename T::varlist_iterator I = Node->varlist_begin(), - E = Node->varlist_end(); - I != E; ++I) - TraverseStmt(*I); + for (auto *I : Node->varlists()) + TraverseStmt(I); } template diff --git a/lib/AST/StmtProfile.cpp b/lib/AST/StmtProfile.cpp index b871ffb73b..eeffe743b7 100644 --- a/lib/AST/StmtProfile.cpp +++ b/lib/AST/StmtProfile.cpp @@ -279,10 +279,8 @@ void OMPClauseProfiler::VisitOMPDefaultClause(const OMPDefaultClause *C) { } template void OMPClauseProfiler::VisitOMPClauseList(T *Node) { - for (typename T::varlist_const_iterator I = Node->varlist_begin(), - E = Node->varlist_end(); - I != E; ++I) - Profiler->VisitStmt(*I); + for (auto *I : Node->varlists()) + Profiler->VisitStmt(I); } void OMPClauseProfiler::VisitOMPPrivateClause(const OMPPrivateClause *C) { diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index c17eb19853..5ea21ff14a 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -2305,10 +2305,8 @@ Decl *TemplateDeclInstantiator::VisitClassScopeFunctionSpecializationDecl( Decl *TemplateDeclInstantiator::VisitOMPThreadPrivateDecl( OMPThreadPrivateDecl *D) { SmallVector Vars; - for (ArrayRef::iterator I = D->varlist_begin(), - E = D->varlist_end(); - I != E; ++I) { - Expr *Var = SemaRef.SubstExpr(*I, TemplateArgs).take(); + for (auto *I : D->varlists()) { + Expr *Var = SemaRef.SubstExpr(I, TemplateArgs).take(); assert(isa(Var) && "threadprivate arg is not a DeclRefExpr"); Vars.push_back(Var); } diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h index d8bd91ef59..c1847fa7d5 100644 --- a/lib/Sema/TreeTransform.h +++ b/lib/Sema/TreeTransform.h @@ -6358,10 +6358,8 @@ OMPClause * TreeTransform::TransformOMPPrivateClause(OMPPrivateClause *C) { llvm::SmallVector Vars; Vars.reserve(C->varlist_size()); - for (OMPPrivateClause::varlist_iterator I = C->varlist_begin(), - E = C->varlist_end(); - I != E; ++I) { - ExprResult EVar = getDerived().TransformExpr(cast(*I)); + for (auto *I : C->varlists()) { + ExprResult EVar = getDerived().TransformExpr(cast(I)); if (EVar.isInvalid()) return 0; Vars.push_back(EVar.take()); @@ -6378,10 +6376,8 @@ TreeTransform::TransformOMPFirstprivateClause( OMPFirstprivateClause *C) { llvm::SmallVector Vars; Vars.reserve(C->varlist_size()); - for (OMPFirstprivateClause::varlist_iterator I = C->varlist_begin(), - E = C->varlist_end(); - I != E; ++I) { - ExprResult EVar = getDerived().TransformExpr(cast(*I)); + for (auto *I : C->varlists()) { + ExprResult EVar = getDerived().TransformExpr(cast(I)); if (EVar.isInvalid()) return 0; Vars.push_back(EVar.take()); @@ -6397,10 +6393,8 @@ OMPClause * TreeTransform::TransformOMPSharedClause(OMPSharedClause *C) { llvm::SmallVector Vars; Vars.reserve(C->varlist_size()); - for (OMPSharedClause::varlist_iterator I = C->varlist_begin(), - E = C->varlist_end(); - I != E; ++I) { - ExprResult EVar = getDerived().TransformExpr(cast(*I)); + for (auto *I : C->varlists()) { + ExprResult EVar = getDerived().TransformExpr(cast(I)); if (EVar.isInvalid()) return 0; Vars.push_back(EVar.take()); diff --git a/lib/Serialization/ASTWriterDecl.cpp b/lib/Serialization/ASTWriterDecl.cpp index 0d679802ed..ba5e62a853 100644 --- a/lib/Serialization/ASTWriterDecl.cpp +++ b/lib/Serialization/ASTWriterDecl.cpp @@ -1415,10 +1415,8 @@ void ASTDeclWriter::VisitRedeclarable(Redeclarable *D) { void ASTDeclWriter::VisitOMPThreadPrivateDecl(OMPThreadPrivateDecl *D) { Record.push_back(D->varlist_size()); VisitDecl(D); - for (OMPThreadPrivateDecl::varlist_iterator I = D->varlist_begin(), - E = D->varlist_end(); - I != E; ++I) - Writer.AddStmt(*I); + for (auto *I : D->varlists()) + Writer.AddStmt(I); Code = serialization::DECL_OMP_THREADPRIVATE; } diff --git a/lib/Serialization/ASTWriterStmt.cpp b/lib/Serialization/ASTWriterStmt.cpp index eb25d060e4..796d02b596 100644 --- a/lib/Serialization/ASTWriterStmt.cpp +++ b/lib/Serialization/ASTWriterStmt.cpp @@ -1698,28 +1698,22 @@ void OMPClauseWriter::VisitOMPDefaultClause(OMPDefaultClause *C) { void OMPClauseWriter::VisitOMPPrivateClause(OMPPrivateClause *C) { Record.push_back(C->varlist_size()); Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record); - for (OMPPrivateClause::varlist_iterator I = C->varlist_begin(), - E = C->varlist_end(); - I != E; ++I) - Writer->Writer.AddStmt(*I); + for (auto *I : C->varlists()) + Writer->Writer.AddStmt(I); } void OMPClauseWriter::VisitOMPFirstprivateClause(OMPFirstprivateClause *C) { Record.push_back(C->varlist_size()); Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record); - for (OMPFirstprivateClause::varlist_iterator I = C->varlist_begin(), - E = C->varlist_end(); - I != E; ++I) - Writer->Writer.AddStmt(*I); + for (auto *I : C->varlists()) + Writer->Writer.AddStmt(I); } void OMPClauseWriter::VisitOMPSharedClause(OMPSharedClause *C) { Record.push_back(C->varlist_size()); Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record); - for (OMPSharedClause::varlist_iterator I = C->varlist_begin(), - E = C->varlist_end(); - I != E; ++I) - Writer->Writer.AddStmt(*I); + for (auto *I : C->varlists()) + Writer->Writer.AddStmt(I); } //===----------------------------------------------------------------------===// diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 67bcff963f..864b753b05 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -1936,10 +1936,8 @@ void OMPClauseEnqueue::VisitOMPDefaultClause(const OMPDefaultClause *C) { } template void OMPClauseEnqueue::VisitOMPClauseList(T *Node) { - for (typename T::varlist_const_iterator I = Node->varlist_begin(), - E = Node->varlist_end(); - I != E; ++I) - Visitor->AddStmt(*I); + for (const auto *I : Node->varlists()) + Visitor->AddStmt(I); } void OMPClauseEnqueue::VisitOMPPrivateClause(const OMPPrivateClause *C) { -- 2.40.0