| // { 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; } |