diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-02-01 15:50:11 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-02-01 15:50:11 +0000 |
commit | fa7781384ebb16dabc6d60a5ea9a1a8dcfc850a2 (patch) | |
tree | c2c7f10c85ad801694969410d1343c2b380d3a88 /clang/test/SemaCXX/new-delete.cpp | |
parent | 1732850158f30aa929f90dc88d49c98042b273b3 (diff) | |
download | bcm5719-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.cpp | 11 |
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() { |