diff options
Diffstat (limited to 'clang/lib/Sema/SemaExprMember.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprMember.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp index 3d182f4c69b..47b18dc39ea 100644 --- a/clang/lib/Sema/SemaExprMember.cpp +++ b/clang/lib/Sema/SemaExprMember.cpp @@ -102,15 +102,15 @@ static IMAKind ClassifyImplicitMemberAccess(Sema &SemaRef, bool hasNonInstance = false; bool isField = false; BaseSet Classes; - for (const NamedDecl *const D : R) { + for (NamedDecl *D : R) { + // Look through any using decls. + D = D->getUnderlyingDecl(); + if (D->isCXXInstanceMember()) { - // Look through any using decls. - const NamedDecl *const UnderlyingDecl = D->getUnderlyingDecl(); - isField |= isa<FieldDecl>(UnderlyingDecl) || - isa<MSPropertyDecl>(UnderlyingDecl) || - isa<IndirectFieldDecl>(UnderlyingDecl); + isField |= isa<FieldDecl>(D) || isa<MSPropertyDecl>(D) || + isa<IndirectFieldDecl>(D); - const CXXRecordDecl *R = cast<CXXRecordDecl>(D->getDeclContext()); + CXXRecordDecl *R = cast<CXXRecordDecl>(D->getDeclContext()); Classes.insert(R->getCanonicalDecl()); } else hasNonInstance = true; |