diff options
-rw-r--r-- | clang/include/clang/AST/DeclCXX.h | 5 | ||||
-rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 10 | ||||
-rw-r--r-- | clang/tools/libclang/IndexDecl.cpp | 8 |
4 files changed, 13 insertions, 14 deletions
diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h index 3f1f7ae991b..f64ef8b5523 100644 --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/include/clang/AST/DeclCXX.h @@ -2882,6 +2882,11 @@ public: } }; + typedef llvm::iterator_range<shadow_iterator> shadow_range; + + shadow_range shadows() const { + return shadow_range(shadow_begin(), shadow_end()); + } shadow_iterator shadow_begin() const { return shadow_iterator(FirstUsingShadow.getPointer()); } diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp index d33613301df..c17eb198539 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -2189,9 +2189,7 @@ Decl *TemplateDeclInstantiator::VisitUsingDecl(UsingDecl *D) { bool isFunctionScope = Owner->isFunctionOrMethod(); // Process the shadow decls. - for (UsingDecl::shadow_iterator I = D->shadow_begin(), E = D->shadow_end(); - I != E; ++I) { - UsingShadowDecl *Shadow = *I; + for (auto *Shadow : D->shadows()) { NamedDecl *InstTarget = cast_or_null<NamedDecl>(SemaRef.FindInstantiatedDecl( Shadow->getLocation(), Shadow->getTargetDecl(), TemplateArgs)); diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 0278facb395..073c48aaf26 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -7856,9 +7856,8 @@ TreeTransform<Derived>::TransformUnresolvedLookupExpr( // Expand using declarations. if (isa<UsingDecl>(InstD)) { UsingDecl *UD = cast<UsingDecl>(InstD); - for (UsingDecl::shadow_iterator I = UD->shadow_begin(), - E = UD->shadow_end(); I != E; ++I) - R.addDecl(*I); + for (auto *I : UD->shadows()) + R.addDecl(I); continue; } @@ -8724,9 +8723,8 @@ TreeTransform<Derived>::TransformUnresolvedMemberExpr(UnresolvedMemberExpr *Old) // Expand using declarations. if (isa<UsingDecl>(InstD)) { UsingDecl *UD = cast<UsingDecl>(InstD); - for (UsingDecl::shadow_iterator I = UD->shadow_begin(), - E = UD->shadow_end(); I != E; ++I) - R.addDecl(*I); + for (auto *I : UD->shadows()) + R.addDecl(I); continue; } diff --git a/clang/tools/libclang/IndexDecl.cpp b/clang/tools/libclang/IndexDecl.cpp index a8911f14148..4372ab34666 100644 --- a/clang/tools/libclang/IndexDecl.cpp +++ b/clang/tools/libclang/IndexDecl.cpp @@ -260,11 +260,9 @@ public: // we should do better. IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), D); - for (UsingDecl::shadow_iterator - I = D->shadow_begin(), E = D->shadow_end(); I != E; ++I) { - IndexCtx.handleReference((*I)->getUnderlyingDecl(), D->getLocation(), - D, D->getLexicalDeclContext()); - } + for (const auto *I : D->shadows()) + IndexCtx.handleReference(I->getUnderlyingDecl(), D->getLocation(), D, + D->getLexicalDeclContext()); return true; } |