summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprMember.cpp
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2015-07-22 00:30:58 +0000
committerDavide Italiano <davide@freebsd.org>2015-07-22 00:30:58 +0000
commitf179e36e0e2c0ca8a28815c95758c3e44ad08fc6 (patch)
tree171b6056c6ba82d143307266f0e81395229107fa /clang/lib/Sema/SemaExprMember.cpp
parente171da5cb781dfaa06f8637b35c06f93e8bb5604 (diff)
downloadbcm5719-llvm-f179e36e0e2c0ca8a28815c95758c3e44ad08fc6.tar.gz
bcm5719-llvm-f179e36e0e2c0ca8a28815c95758c3e44ad08fc6.zip
[Sema] Diagnose use of declaration correctly.
Before we skipped that for virtual functions not fully qualified (r81507). This commit basically reverts this to the older behaviour, which seems more consistent. We now also correctly consider ill-formed calls to deleted member functions, which were silently passed before in some cases. The review contains the whole discussion. PR: 20268 Differential Revision: http://reviews.llvm.org/D11334 llvm-svn: 242857
Diffstat (limited to 'clang/lib/Sema/SemaExprMember.cpp')
-rw-r--r--clang/lib/Sema/SemaExprMember.cpp10
1 files changed, 1 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp
index a9f1919e18a..94716b4a71e 100644
--- a/clang/lib/Sema/SemaExprMember.cpp
+++ b/clang/lib/Sema/SemaExprMember.cpp
@@ -1042,16 +1042,8 @@ Sema::BuildMemberReferenceExpr(Expr *BaseExpr, QualType BaseExprType,
BaseExpr = new (Context) CXXThisExpr(Loc, BaseExprType,/*isImplicit=*/true);
}
- bool ShouldCheckUse = true;
- if (CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(MemberDecl)) {
- // Don't diagnose the use of a virtual member function unless it's
- // explicitly qualified.
- if (MD->isVirtual() && !SS.isSet())
- ShouldCheckUse = false;
- }
-
// Check the use of this member.
- if (ShouldCheckUse && DiagnoseUseOfDecl(MemberDecl, MemberLoc))
+ if (DiagnoseUseOfDecl(MemberDecl, MemberLoc))
return ExprError();
if (FieldDecl *FD = dyn_cast<FieldDecl>(MemberDecl))
OpenPOWER on IntegriCloud