summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-01-22 20:09:10 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-01-22 20:09:10 +0000
commit566184ac7591e693cc5375cfccd9ccac4ae6eddb (patch)
tree72f94bc20f190dd9c36dc422b269f9959b80eebd /clang/lib
parent80429048db141e0bc5da60c568e43cb381d94dfd (diff)
downloadbcm5719-llvm-566184ac7591e693cc5375cfccd9ccac4ae6eddb.tar.gz
bcm5719-llvm-566184ac7591e693cc5375cfccd9ccac4ae6eddb.zip
When a special member is explicitly defaulted outside its class, and we reject
the defaulting because it would delete the member, produce additional notes explaining why the member is implicitly deleted. llvm-svn: 199829
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 3fe6337d502..019b1c189c2 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -4917,6 +4917,7 @@ void Sema::CheckExplicitlyDefaultedSpecialMember(CXXMethodDecl *MD) {
// [For a] user-provided explicitly-defaulted function [...] if such a
// function is implicitly defined as deleted, the program is ill-formed.
Diag(MD->getLocation(), diag::err_out_of_line_default_deletes) << CSM;
+ ShouldDeleteSpecialMember(MD, CSM, /*Diagnose*/true);
HadError = true;
}
}
OpenPOWER on IntegriCloud