// RUN: %clang_cc1 -verify %s
// If the object being deleted has incomplete class type at the point of
// deletion and the complete class has a non-trivial destructor or a
// deallocation function, the behavior is undefined.
// The trivial case.
; // expected-note {{forward declaration}}
void // expected-warning {{deleting pointer to incomplete type}}
;
// The trivial case, inside a template instantiation.
; // expected-warning {{deleting pointer to incomplete type}}
; // expected-note {{forward declaration}}
void // expected-note {{in instantiation of member function}}
// This case depends on when we check T2_C::f0.
;
;
;
void
;
// An alternate version of the same.
;
;
;
void
;