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*c87b03e5Sespievoid B::f () throw (A) {} 17*c87b03e5Sespie main()18*c87b03e5Sespieint main () 19*c87b03e5Sespie { 20*c87b03e5Sespie B b; 21*c87b03e5Sespie b.f(); 22*c87b03e5Sespie } 23