1 /* { dg-do assemble } */ 2 3 class A {}; 4 class B {}; 5 func(int n)6static void *func (int n) 7 { 8 void *p; 9 if (p == 0) throw ::A (); 10 } // { dg-warning "control reaches end of non-void function" } 11 func(int n,B const &)12static void *func (int n, B const &) 13 { 14 try { 15 return func (n); 16 } 17 catch (::A const &) { 18 } 19 return func (n); 20 } 21 f1(int n)22void *f1 (int n) 23 { 24 return func (n, B()); 25 } 26 f2(int n)27void *f2 (int n) 28 { 29 return func (n, B()); 30 } 31