diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-07 02:10:28 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-07 02:10:28 +0000 |
commit | 50d705b5b013ae86bc1c718d512f9dd0fd88ddd6 (patch) | |
tree | 945cc0716d504839e0580ff72e8b72c083b97621 /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 80d3e56c738aea996510c5c4435a0aa7b90ccf6f (diff) | |
download | bcm5719-llvm-50d705b5b013ae86bc1c718d512f9dd0fd88ddd6.tar.gz bcm5719-llvm-50d705b5b013ae86bc1c718d512f9dd0fd88ddd6.zip |
Per [dcl.fct.def.default]p1, don't allow variadic special members to be defaulted.
llvm-svn: 169574
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 64895d75b5a..88cc0aa4726 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -4223,6 +4223,10 @@ void Sema::CheckExplicitlyDefaultedSpecialMember(CXXMethodDecl *MD) { Diag(MD->getLocation(), diag::err_defaulted_special_member_params) << CSM << MD->getSourceRange(); HadError = true; + } else if (MD->isVariadic()) { + Diag(MD->getLocation(), diag::err_defaulted_special_member_variadic) + << CSM << MD->getSourceRange(); + HadError = true; } const FunctionProtoType *Type = MD->getType()->getAs<FunctionProtoType>(); |