diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-02-21 02:31:57 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-02-21 02:31:57 +0000 |
commit | 40c7806451f484436aa0bdfa53254cf41d3427fa (patch) | |
tree | ca4fdda9f83fafa01e86308384294d77a337eeaa /clang/lib/AST/DeclCXX.cpp | |
parent | 65500d4b29bdd03f6e3d14bd09550465bd9e16ed (diff) | |
download | bcm5719-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.cpp | 5 |
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)) |