On Mar 14, 2014, at 9:29 AM, Aaron Ballman <[email protected]> wrote:
> Author: aaronballman > Date: Fri Mar 14 11:29:14 2014 > New Revision: 203942 > > URL: http://llvm.org/viewvc/llvm-project?rev=203942&view=rev > Log: > [C++11] Replacing VarTemplateDecl iterators spec_begin() and spec_end() with > iterator_range specializations(). Updating all of the usages of the iterators > with range-based for loops. > > Modified: > cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h > cfe/trunk/include/clang/AST/DeclTemplate.h > cfe/trunk/include/clang/AST/RecursiveASTVisitor.h > > Modified: cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h?rev=203942&r1=203941&r2=203942&view=diff > ============================================================================== > --- cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h (original) > +++ cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h Fri Mar 14 11:29:14 > 2014 > @@ -1460,9 +1460,7 @@ template <typename Derived> > bool DataRecursiveASTVisitor<Derived>::TraverseVariableInstantiations( > VarTemplateDecl *D) { > VarTemplateDecl::spec_iterator end = D->spec_end(); > - for (VarTemplateDecl::spec_iterator it = D->spec_begin(); it != end; ++it) > { > - VarTemplateSpecializationDecl *SD = *it; > - > + for (auto *SD : D->specializations()) { > switch (SD->getSpecializationKind()) { > // Visit the implicit instantiations with the requested pattern. > case TSK_Undeclared: > > Modified: cfe/trunk/include/clang/AST/DeclTemplate.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclTemplate.h?rev=203942&r1=203941&r2=203942&view=diff > ============================================================================== > --- cfe/trunk/include/clang/AST/DeclTemplate.h (original) > +++ cfe/trunk/include/clang/AST/DeclTemplate.h Fri Mar 14 11:29:14 2014 > @@ -2776,6 +2776,11 @@ public: > VarTemplatePartialSpecializationDecl *D); > > typedef SpecIterator<VarTemplateSpecializationDecl> spec_iterator; > + typedef llvm::iterator_range<spec_iterator> spec_range; > + > + spec_range specializations() const { > + return spec_range(spec_begin(), spec_end()); > + } > > spec_iterator spec_begin() const { > return makeSpecIterator(getSpecializations(), false); > > Modified: cfe/trunk/include/clang/AST/RecursiveASTVisitor.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/RecursiveASTVisitor.h?rev=203942&r1=203941&r2=203942&view=diff > ============================================================================== > --- cfe/trunk/include/clang/AST/RecursiveASTVisitor.h (original) > +++ cfe/trunk/include/clang/AST/RecursiveASTVisitor.h Fri Mar 14 11:29:14 2014 > @@ -1501,10 +1501,7 @@ template<typename Derived> > bool RecursiveASTVisitor<Derived>::TraverseTemplateInstantiations( \ > TMPLDECLKIND##TemplateDecl *D) { \ > TMPLDECLKIND##TemplateDecl::spec_iterator end = D->spec_end(); \ FYI, this (and a few other similar commits) introduced unused variable warnings because you left end around. Fixed in r203948. > - for (TMPLDECLKIND##TemplateDecl::spec_iterator it = D->spec_begin(); > \ > - it != end; ++it) { > \ > - TMPLDECLKIND##TemplateSpecializationDecl* SD = *it; > \ > - > \ > + for (auto *SD : D->specializations()) { > \ > switch (SD->getSpecializationKind()) { \ > /* Visit the implicit instantiations with the requested pattern. */ \ > case TSK_Undeclared: \ > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
