summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/new-delete.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-02-01 15:50:11 +0000
committerDouglas Gregor <dgregor@apple.com>2011-02-01 15:50:11 +0000
commitfa7781384ebb16dabc6d60a5ea9a1a8dcfc850a2 (patch)
treec2c7f10c85ad801694969410d1343c2b380d3a88 /clang/test/SemaCXX/new-delete.cpp
parent1732850158f30aa929f90dc88d49c98042b273b3 (diff)
downloadbcm5719-llvm-fa7781384ebb16dabc6d60a5ea9a1a8dcfc850a2.tar.gz
bcm5719-llvm-fa7781384ebb16dabc6d60a5ea9a1a8dcfc850a2.zip
Implement access checking for the "delete" operator. Fixes PR9050,
from Alex Miller! llvm-svn: 124663
Diffstat (limited to 'clang/test/SemaCXX/new-delete.cpp')
-rw-r--r--clang/test/SemaCXX/new-delete.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/new-delete.cpp b/clang/test/SemaCXX/new-delete.cpp
index 19d5df6673e..13ef461e7c0 100644
--- a/clang/test/SemaCXX/new-delete.cpp
+++ b/clang/test/SemaCXX/new-delete.cpp
@@ -234,6 +234,17 @@ void f(X14 *x14a, X14 *x14b) {
delete x14a;
}
+class X15 {
+private:
+ X15(); // expected-note {{declared private here}}
+ ~X15(); // expected-note {{declared private here}}
+};
+
+void f(X15* x) {
+ new X15(); // expected-error {{calling a private constructor}}
+ delete x; // expected-error {{calling a private destructor}}
+}
+
namespace PR5918 { // Look for template operator new overloads.
struct S { template<typename T> static void* operator new(size_t, T); };
void test() {
OpenPOWER on IntegriCloud