diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2002-02-07 07:22:10 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2002-02-07 07:22:10 -0500 |
commit | a6f3addd0bf743047a29a98235ecde07b41e9790 (patch) | |
tree | dc92516e6a814591bf165138f2fa461415baf100 | |
parent | fde5baddf43ae7a6347f92468a331a2586b0bfbf (diff) | |
download | gcc-a6f3addd0bf743047a29a98235ecde07b41e9790.zip gcc-a6f3addd0bf743047a29a98235ecde07b41e9790.tar.gz gcc-a6f3addd0bf743047a29a98235ecde07b41e9790.tar.bz2 |
c-decl.c (finish_function): Warn about a non-void function with no return statement and no abnormal exit.
* c-decl.c (finish_function): Warn about a non-void function with
no return statement and no abnormal exit.
(current_function_returns_abnormally): New variable.
(start_function): Clear it.
(struct c_language_function): Add returns_abnormally.
(push_c_function_context): Save it.
(pop_c_function_context): Restore it.
(builtin_function): Set TREE_THIS_VOLATILE on return fns.
(grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
an explicit return type.
* c-tree.h: Declare current_function_returns_abnormally.
(C_FUNCTION_IMPLICIT_INT): New macro.
* c-typeck.c (build_function_call): Set it.
(c_expand_return): Set current_function_returns_value even if the
value is erroneous.
From-SVN: r49577
-rw-r--r-- | gcc/testsuite/gcc.dg/Wreturn-type.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/Wreturn-type.c b/gcc/testsuite/gcc.dg/Wreturn-type.c new file mode 100644 index 0000000..a122e52 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wreturn-type.c @@ -0,0 +1,5 @@ +/* PR c++/4872 */ +/* { dg-do compile } */ +/* { dg-options "-Wreturn-type" } */ + +static inline int f() {} /* { dg-warning "return" "missing return" } */ |