diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-28 12:23:24 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-28 12:23:24 +0000 |
commit | de1a4874025851aac3f1e1b7746ee40060597e26 (patch) | |
tree | 944c3a693e191a37ca8a81879f5bc3a2610e17e4 /clang/lib/Sema/SemaOverload.cpp | |
parent | 9dc3558920ce2bfc669f3e228e37acfbec2b778d (diff) | |
download | bcm5719-llvm-de1a4874025851aac3f1e1b7746ee40060597e26.tar.gz bcm5719-llvm-de1a4874025851aac3f1e1b7746ee40060597e26.zip |
Improve diagnostic wording for when an implicitly-deleted special member
function is selected by overload resolution.
llvm-svn: 171190
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
-rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index e5af2b16d70..7ae6d9d5af7 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -10386,16 +10386,13 @@ Sema::CreateOverloadedBinOp(SourceLocation OpLoc, if (isImplicitlyDeleted(Best->Function)) { CXXMethodDecl *Method = cast<CXXMethodDecl>(Best->Function); Diag(OpLoc, diag::err_ovl_deleted_special_oper) - << getSpecialMember(Method) - << BinaryOperator::getOpcodeStr(Opc) - << getDeletedOrUnavailableSuffix(Best->Function); + << Context.getRecordType(Method->getParent()) + << getSpecialMember(Method); - if (getSpecialMember(Method) != CXXInvalid) { - // The user probably meant to call this special member. Just - // explain why it's deleted. - NoteDeletedFunction(Method); - return ExprError(); - } + // The user probably meant to call this special member. Just + // explain why it's deleted. + NoteDeletedFunction(Method); + return ExprError(); } else { Diag(OpLoc, diag::err_ovl_deleted_oper) << Best->Function->isDeleted() |