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