1 // RUN: %clang_cc1 -fsyntax-only -verify %s
4 class NoDestroy
{ ~NoDestroy(); }; // expected-note 3 {{declared private here}}
9 struct B
: public virtual A
{
10 NoDestroy x
; // expected-error {{field of type 'NoDestroy' has private destructor}}
12 struct D
: public virtual B
{
16 void D::foo() { // expected-note {{implicit default destructor for 'B' first required here}}
19 struct E
: public virtual A
{
20 NoDestroy x
; // expected-error {{field of type 'NoDestroy' has private destructor}}
22 struct F
: public E
{ // expected-note {{implicit default destructor for 'E' first required here}}
24 struct G
: public virtual F
{
28 void G::foo() { // expected-note {{implicit default destructor for 'F' first required here}}
31 struct H
: public virtual A
{
32 NoDestroy x
; // expected-error {{field of type 'NoDestroy' has private destructor}}
34 struct I
: public virtual H
{
41 void J::foo() { // expected-note {{implicit default destructor for 'H' first required here}}