aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/c-decl.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61d986100ed..03261dc1e79 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2005-05-13 Jan Hubicka <jh@suse.cz>
+ * c-decl.c (finish_function): Suppress "control reaches end of
+ non-void function" when "no return statement in function
+ returning non-void" is issued.
+
* tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
* tree-optimize.c (pass_gimple): Kill.
(init_tree_optimization_passes): Kill pass_gimple.
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 6c9ab457510..e189d3629dd 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -6490,7 +6490,10 @@ finish_function (void)
/* Normally, with -Wreturn-type, flow will complain. Unless we're an
inline function, as we might never be compiled separately. */
&& DECL_INLINE (fndecl))
- warning (0, "no return statement in function returning non-void");
+ {
+ warning (0, "no return statement in function returning non-void");
+ TREE_NO_WARNING (fndecl) = 1;
+ }
/* With just -Wextra, complain only if function returns both with
and without a value. */