111
|
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
|
|
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 }
|