summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-02-25 09:42:26 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-02-25 09:42:26 +0000
commit978cc7306cb665226e94e583f36049971b2fe26f (patch)
tree5778b4a4f8bf8304d9ce4bc4296323b5797e8701 /clang
parent561fb15801159b7ac0ecb1d10cdcf21f1e058283 (diff)
downloadbcm5719-llvm-978cc7306cb665226e94e583f36049971b2fe26f.tar.gz
bcm5719-llvm-978cc7306cb665226e94e583f36049971b2fe26f.zip
Fix assertion (too few Diag arguments) when diagnosing a deleted operator delete
llvm-svn: 151442
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp3
-rw-r--r--clang/test/SemaCXX/deleted-operator.cpp5
2 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 95bd6175017..29d21388266 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -1881,7 +1881,8 @@ bool Sema::FindDeallocationFunction(SourceLocation StartLoc, CXXRecordDecl *RD,
if (Operator->isDeleted()) {
if (Diagnose) {
Diag(StartLoc, diag::err_deleted_function_use);
- Diag(Operator->getLocation(), diag::note_unavailable_here) << true;
+ Diag(Operator->getLocation(), diag::note_unavailable_here)
+ << /*function*/ 1 << /*deleted*/ 1;
}
return true;
}
diff --git a/clang/test/SemaCXX/deleted-operator.cpp b/clang/test/SemaCXX/deleted-operator.cpp
index e357401bf94..0e0282ad12c 100644
--- a/clang/test/SemaCXX/deleted-operator.cpp
+++ b/clang/test/SemaCXX/deleted-operator.cpp
@@ -11,3 +11,8 @@ int PR10757f() {
if(~a1) {} // expected-error {{overload resolution selected deleted operator}} expected-note 6 {{built-in candidate}}
if(a1==a1) {} // expected-error {{overload resolution selected deleted operator}} expected-note 81 {{built-in candidate}}
}
+
+struct DelOpDel {
+ virtual ~DelOpDel() {} // expected-error {{deleted function}}
+ void operator delete(void*) = delete; // expected-note {{deleted here}}
+};
OpenPOWER on IntegriCloud