diff options
Diffstat (limited to 'test/CXX/special/class.dtor/p5-implicit.cpp')
-rw-r--r-- | test/CXX/special/class.dtor/p5-implicit.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/CXX/special/class.dtor/p5-implicit.cpp b/test/CXX/special/class.dtor/p5-implicit.cpp new file mode 100644 index 000000000000..703be15b70cd --- /dev/null +++ b/test/CXX/special/class.dtor/p5-implicit.cpp @@ -0,0 +1,21 @@ +// RUN: %clang_cc1 -std=c++11 %s -ast-dump | FileCheck %s + +struct A { ~A() = delete; }; +// CHECK-LABEL: CXXRecordDecl {{.*}} struct A +// CHECK: Destructor trivial user_declared + +struct B : A {}; +// CHECK-LABEL: CXXRecordDecl {{.*}} struct B +// CHECK: Destructor trivial needs_overload_resolution + +struct C : B {}; +// CHECK-LABEL: CXXRecordDecl {{.*}} struct C +// CHECK: Destructor trivial needs_overload_resolution + +struct D { ~D(); }; +struct E : D {}; +union U { + E e; +}; +// CHECK-LABEL: CXXRecordDecl {{.*}} union U +// CHECK: Destructor non_trivial needs_implicit defaulted_is_deleted |