1*c87b03e5Sespie // Test for extension to allow incomplete types in an
2*c87b03e5Sespie // exception-specification for a declaration.
3*c87b03e5Sespie 
4*c87b03e5Sespie // { dg-do run }
5*c87b03e5Sespie // { dg-options "-fpermissive -w" }
6*c87b03e5Sespie 
7*c87b03e5Sespie struct A;
8*c87b03e5Sespie 
9*c87b03e5Sespie struct B
10*c87b03e5Sespie {
11*c87b03e5Sespie   void f () throw (A);
12*c87b03e5Sespie };
13*c87b03e5Sespie 
14*c87b03e5Sespie struct A {};
15*c87b03e5Sespie 
f()16*c87b03e5Sespie void B::f () throw (A) {}
17*c87b03e5Sespie 
main()18*c87b03e5Sespie int main ()
19*c87b03e5Sespie {
20*c87b03e5Sespie   B b;
21*c87b03e5Sespie   b.f();
22*c87b03e5Sespie }
23