summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclCXX.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-02-21 02:31:57 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-02-21 02:31:57 +0000
commit40c7806451f484436aa0bdfa53254cf41d3427fa (patch)
treeca4fdda9f83fafa01e86308384294d77a337eeaa /clang/lib/AST/DeclCXX.cpp
parent65500d4b29bdd03f6e3d14bd09550465bd9e16ed (diff)
downloadbcm5719-llvm-40c7806451f484436aa0bdfa53254cf41d3427fa.tar.gz
bcm5719-llvm-40c7806451f484436aa0bdfa53254cf41d3427fa.zip
Revert r167816 and replace it with a proper fix for the issue: do not
invalidate lookup_iterators and lookup_results for some name within a DeclContext if the lookup results for a *different* name change. llvm-svn: 230121
Diffstat (limited to 'clang/lib/AST/DeclCXX.cpp')
-rw-r--r--clang/lib/AST/DeclCXX.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index a796e0b622f..536a1453aaa 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -1418,9 +1418,8 @@ CXXMethodDecl::getCorrespondingMethodInClass(const CXXRecordDecl *RD,
return nullptr;
}
- lookup_const_result Candidates = RD->lookup(getDeclName());
- for (NamedDecl * const * I = Candidates.begin(); I != Candidates.end(); ++I) {
- CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(*I);
+ for (auto *ND : RD->lookup(getDeclName())) {
+ CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(ND);
if (!MD)
continue;
if (recursivelyOverrides(MD, this))
OpenPOWER on IntegriCloud