diff options
| author | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-12 06:56:45 +0000 |
|---|---|---|
| committer | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-12 06:56:45 +0000 |
| commit | 86752479f629532c8166eb1015e1d09a3ff4f72f (patch) | |
| tree | 19d07d9c11c2ef1cda39ada85ec07837657c0f2f /gcc | |
| parent | d7e245bb9661ff4c67ee0bbb37ccc721a5976dcd (diff) | |
| download | ppe42-gcc-86752479f629532c8166eb1015e1d09a3ff4f72f.tar.gz ppe42-gcc-86752479f629532c8166eb1015e1d09a3ff4f72f.zip | |
gcc/ChangeLog:
2004-06-29 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/14107
* gimplify.c (gimplify_return_expr): Accept a
RETURN_EXPR with an error argument.
* tree-optimize.c (init_tree_optimization_passes):
Run pass_warn_function_return at -O0.
gcc/cp/ChangeLog:
2004-06-29 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/14107
* decl.c (finish_function): Remove temporary band-aid.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84550 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 8 | ||||
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/decl.c | 5 | ||||
| -rw-r--r-- | gcc/gimplify.c | 6 | ||||
| -rw-r--r-- | gcc/tree-optimize.c | 2 |
5 files changed, 17 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 839341720b6..1cac842bde3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-07-12 Paolo Bonzini <bonzini@gnu.org> + + PR tree-optimization/14107 + * gimplify.c (gimplify_return_expr): Accept a + RETURN_EXPR with an error argument. + * tree-optimize.c (init_tree_optimization_passes): + Run pass_warn_function_return at -O0. + 2004-07-12 Roger Sayle <roger@eyesopen.com> * doc/invoke.texi: Correct -fasynchronous-unwind-tables option diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e8cef5fa1cb..099b1bbb87b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-07-12 Paolo Bonzini <bonzini@gnu.org> + + PR tree-optimization/14107 + * decl.c (finish_function): Remove temporary band-aid. + 2004-07-11 Mark Mitchell <mark@codesourcery.com> * call.c (build_operator_new_call): Avoid using push_to_top_level. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 6f701ca9356..ab5dd84531a 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -10348,13 +10348,10 @@ finish_function (int flags) && !current_function_returns_value && !current_function_returns_null /* Don't complain if we abort or throw. */ && !current_function_returns_abnormally - && !DECL_NAME (DECL_RESULT (fndecl))) -#if 0 - /* Enable this for all functions until bug 14107 is fixed properly. */ + && !DECL_NAME (DECL_RESULT (fndecl)) /* Normally, with -Wreturn-type, flow will complain. Unless we're an inline function, as we might never be compiled separately. */ && (DECL_INLINE (fndecl) || processing_template_decl)) -#endif warning ("no return statement in function returning non-void"); /* Store the end of the function, so that we get good line number diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 5b876206769..f2003b65628 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -928,12 +928,10 @@ gimplify_return_expr (tree stmt, tree *pre_p) tree ret_expr = TREE_OPERAND (stmt, 0); tree result_decl, result; - if (!ret_expr || TREE_CODE (ret_expr) == RESULT_DECL) + if (!ret_expr || TREE_CODE (ret_expr) == RESULT_DECL + || ret_expr == error_mark_node) return GS_ALL_DONE; - if (ret_expr == error_mark_node) - return GS_ERROR; - if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (current_function_decl)))) result_decl = NULL_TREE; else diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index 94681c4c044..e8c951bbab7 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -273,6 +273,7 @@ init_tree_optimization_passes (void) NEXT_PASS (pass_tree_profile); NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_all_optimizations); + NEXT_PASS (pass_warn_function_return); NEXT_PASS (pass_mudflap_2); NEXT_PASS (pass_free_datastructures); NEXT_PASS (pass_expand); @@ -319,7 +320,6 @@ init_tree_optimization_passes (void) NEXT_PASS (DUP_PASS (pass_phiopt)); NEXT_PASS (pass_tail_calls); NEXT_PASS (pass_late_warn_uninitialized); - NEXT_PASS (pass_warn_function_return); NEXT_PASS (pass_del_pta); NEXT_PASS (pass_del_ssa); NEXT_PASS (pass_nrv); |

