/* { dg-do compile } */ /* { dg-options "-O2" } */ class a { public: enum b { c, g, d, e } f; a(b h) : f(h) {} a i() { switch (f) { case d: return c; case e: return g; } } /* { dg-warning "control reaches end of non-void function" } */ }; struct k { a j; k l() { j.i(); } /* { dg-warning "no return statement in function returning non-void" } */ }; void m(k h) { h.l(); }