On Fri, Mar 14, 2014 at 1:29 PM, Duncan P. N. Exon Smith <[email protected]> wrote: > > 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.
Thanks for fixing it up -- MSVC doesn't always warn on unused variables, sorry for the hassle! ~Aaron _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
