summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/defaulted-private-dtor.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-02-25 07:33:38 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-02-25 07:33:38 +0000
commit561fb15801159b7ac0ecb1d10cdcf21f1e058283 (patch)
tree03a155b5c6ec9500c7575b45961e652201881de0 /clang/test/SemaCXX/defaulted-private-dtor.cpp
parentd489edff7fa1251c3460b38e17c88ef85c98ff62 (diff)
downloadbcm5719-llvm-561fb15801159b7ac0ecb1d10cdcf21f1e058283.tar.gz
bcm5719-llvm-561fb15801159b7ac0ecb1d10cdcf21f1e058283.zip
Teach CXXRecordDecl::hasIrrelevantDestructor to check the base classes and
data members for deleted or user-provided destructors. Now it's computed in advance, serialize it, and in passing fix all the other record DefinitionData flags whose serialization was missing. llvm-svn: 151441
Diffstat (limited to 'clang/test/SemaCXX/defaulted-private-dtor.cpp')
-rw-r--r--clang/test/SemaCXX/defaulted-private-dtor.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/test/SemaCXX/defaulted-private-dtor.cpp b/clang/test/SemaCXX/defaulted-private-dtor.cpp
index a15bdde60c9..a4b868c0ad5 100644
--- a/clang/test/SemaCXX/defaulted-private-dtor.cpp
+++ b/clang/test/SemaCXX/defaulted-private-dtor.cpp
@@ -2,7 +2,7 @@
class BadDtor {
// A private, but nonetheless trivial, destructor.
- ~BadDtor() = default; // expected-note 9{{here}}
+ ~BadDtor() = default; // expected-note 11{{here}}
friend class K;
};
void f() {
@@ -12,6 +12,15 @@ void f() {
BadDtor dd; // expected-error {{private destructor}}
throw dd; // expected-error {{private destructor}}
}
+struct V { // expected-note {{here}}
+ V();
+ BadDtor bd; // expected-error {{private destructor}}
+};
+V v; // expected-error {{deleted function}} expected-note {{required here}}
+struct W : BadDtor { // expected-note {{here}} expected-error {{private destructor}}
+ W();
+};
+W w; // expected-error {{deleted function}} expected-note {{required here}}
struct X : BadDtor { // expected-error {{private destructor}}
~X() {}
};
OpenPOWER on IntegriCloud