1 // { dg-do compile }
2 
3 // Contributed by Brian Gaeke; public domain.
4 
5 // 5 If the object being deleted has incomplete class type at the
6 // point of deletion and the complete class has a non-trivial
7 // destructor or a deallocation function, the behavior is undefined.
8 
9 // (But the deletion does not constitute an ill-formed program. So the
10 // program should nevertheless compile, but it should give a warning.)
11 
12 class A;	// { dg-message "forward declaration of 'class A'" }
13 
14 A *a;		// { dg-warning "'a' has incomplete type" }
15 
16 int
main(int argc,char ** argv)17 main (int argc, char **argv)
18 {
19   delete a;	// { dg-warning "delete" "warn" }
20   // { dg-message "note" "note" { target *-*-* } .-1 }
21   return 0;
22 }
23