// { dg-do assemble } // { dg-options "-Wreturn-type -pedantic-errors" } // g++ 1.36.1 bug 900205_03 // Section 6.6.3 of the cfront 2.0 Reference Manual says "A return statement // without an expression can be used only in functions that do not return // a value, that is, a function with the return value type void..." // Also in 6.6.3: "Flowing off the end of a function is equivalent to a // return with no value; this is illegal in a value returning function." // In contrast to the manual, g++ does not generate ERRORs for cases of // "flowing off the end" of non-void functions. // keywords: return statements, return type, void return, implicit return struct struct00 { }; int global_function_0 () { } // { dg-warning "no return" } struct00 global_function_1 () { } // { dg-warning "no return" } struct struct0 { int struct0_member_function_0 () { } // { dg-warning "no return" } struct0 struct0_member_function_1 () { } // { dg-warning "no return" } }; struct struct1 { int struct1_member_function_0 (); struct1 struct1_member_function_1 (); }; int struct1_member_function_0 () { } // { dg-warning "no return" } struct1 struct1::struct1_member_function_1 () { } // { dg-warning "no return" } int main () { return 0; }