diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2014-03-07 14:09:15 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2014-03-07 14:09:15 +0000 |
commit | 0265df477e00f92fffada6fc834a7966fc91d3f4 (patch) | |
tree | 11d35fdd802faf08fc9af82283143fa7c5a89b2e | |
parent | 0d72b7c6e6050d1f13f605793c39607d5220a8bd (diff) |
[C++11] Replacing iterators ddiag_begin() and ddiag_end() with iterator_range ddiags(). Updating all of the usages of the iterators with range-based for loops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203240 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/DeclBase.h | 5 | ||||
-rw-r--r-- | include/clang/AST/DependentDiagnostic.h | 10 | ||||
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 5 |
3 files changed, 8 insertions, 12 deletions
diff --git a/include/clang/AST/DeclBase.h b/include/clang/AST/DeclBase.h index 8be3b8c81a..395fb67026 100644 --- a/include/clang/AST/DeclBase.h +++ b/include/clang/AST/DeclBase.h @@ -1589,8 +1589,9 @@ public: // These are all defined in DependentDiagnostic.h. class ddiag_iterator; - inline ddiag_iterator ddiag_begin() const; - inline ddiag_iterator ddiag_end() const; + typedef llvm::iterator_range<DeclContext::ddiag_iterator> ddiag_range; + + inline ddiag_range ddiags() const; // Low-level accessors diff --git a/include/clang/AST/DependentDiagnostic.h b/include/clang/AST/DependentDiagnostic.h index 004b45da0f..0c783d2428 100644 --- a/include/clang/AST/DependentDiagnostic.h +++ b/include/clang/AST/DependentDiagnostic.h @@ -171,18 +171,16 @@ private: DependentDiagnostic *Ptr; }; -inline DeclContext::ddiag_iterator DeclContext::ddiag_begin() const { +inline DeclContext::ddiag_range DeclContext::ddiags() const { assert(isDependentContext() && "cannot iterate dependent diagnostics of non-dependent context"); const DependentStoredDeclsMap *Map = static_cast<DependentStoredDeclsMap*>(getPrimaryContext()->getLookupPtr()); - if (!Map) return ddiag_iterator(); - return ddiag_iterator(Map->FirstDiagnostic); -} + if (!Map) + return ddiag_range(); -inline DeclContext::ddiag_iterator DeclContext::ddiag_end() const { - return ddiag_iterator(); + return ddiag_range(ddiag_iterator(Map->FirstDiagnostic), ddiag_iterator()); } } diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index a912f34f20..5ce43da9eb 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -4674,10 +4674,7 @@ void Sema::PerformPendingInstantiations(bool LocalOnly) { void Sema::PerformDependentDiagnostics(const DeclContext *Pattern, const MultiLevelTemplateArgumentList &TemplateArgs) { - for (DeclContext::ddiag_iterator I = Pattern->ddiag_begin(), - E = Pattern->ddiag_end(); I != E; ++I) { - DependentDiagnostic *DD = *I; - + for (auto DD : Pattern->ddiags()) { switch (DD->getKind()) { case DependentDiagnostic::Access: HandleDependentAccessCheck(*DD, TemplateArgs); |