summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2014-03-07 14:09:15 +0000
committerAaron Ballman <aaron@aaronballman.com>2014-03-07 14:09:15 +0000
commit0265df477e00f92fffada6fc834a7966fc91d3f4 (patch)
tree11d35fdd802faf08fc9af82283143fa7c5a89b2e
parent0d72b7c6e6050d1f13f605793c39607d5220a8bd (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.h5
-rw-r--r--include/clang/AST/DependentDiagnostic.h10
-rw-r--r--lib/Sema/SemaTemplateInstantiateDecl.cpp5
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);