aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema/SemaDecl.cpp')
-rw-r--r--lib/Sema/SemaDecl.cpp14
1 files changed, 1 insertions, 13 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 562b2dab05..550a1441ac 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -2145,23 +2145,11 @@ Sema::ActOnFunctionDeclarator(Scope* S, Declarator& D, DeclContext* DC,
// Look for virtual methods in base classes that this method might override.
BasePaths Paths;
- // FIXME: This will not include hidden member functions.
if (LookupInBases(cast<CXXRecordDecl>(DC),
- MemberLookupCriteria(Name, LookupMemberName,
- // FIXME: Shouldn't IDNS_Member be
- // enough here?
- Decl::IDNS_Member |
- Decl::IDNS_Ordinary), Paths)) {
+ MemberLookupCriteria(NewMD), Paths)) {
for (BasePaths::decl_iterator I = Paths.found_decls_begin(),
E = Paths.found_decls_end(); I != E; ++I) {
if (CXXMethodDecl *OldMD = dyn_cast<CXXMethodDecl>(*I)) {
- OverloadedFunctionDecl::function_iterator MatchedDecl;
- // FIXME: Is this OK? Should it be done by LookupInBases?
- if (IsOverload(NewMD, OldMD, MatchedDecl))
- continue;
- if (!OldMD->isVirtual())
- continue;
-
if (!CheckOverridingFunctionReturnType(NewMD, OldMD))
NewMD->addOverriddenMethod(OldMD);
}