summaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-15 12:46:07 +0000
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-15 12:46:07 +0000
commitd2010b0467ba325c1e8c52b20f776830c191b165 (patch)
treeaf8f6b819cf8320c57100f0ded0f5d0bdbae5c96 /gcc/passes.c
parentf3e1a7275a876f9e90ea46dc57fa7352f39cb892 (diff)
downloadgcc-d2010b0467ba325c1e8c52b20f776830c191b165.tar.gz
gcc/ChangeLog:
2004-06-15 Paolo Bonzini <bonzini@gnu.org> * function.h (struct function): Remove cannot_inline field. (current_function_cannot_inline): Remove. * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. Simplify conditionals to ignore warn_return_type. * tree-optimize.c (tree_rest_of_compilation): Do not reset DECL_DEFER_OUTPUT. * objc/objc-act.c (build_module_descriptor, finish_method_def): Do not set current_function_cannot_inline. gcc/java/ChangeLog: 2004-06-15 Paolo Bonzini <bonzini@gnu.org> * class.c (emit_register_classes): Make the function uninlinable, do not set current_function_cannot_inline. * resource.c (write_resource_constructor): Do not reset flag_inline_functions around rest_of_compilation. gcc/cp/ChangeLog: 2004-06-15 Paolo Bonzini <bonzini@gnu.org> * cp-tree.h (struct language_function): Remove cannot_inline. * decl.c (save_function_data): cannot_inline is no more. (cxx_push_function_context): Likewise. * decl2.c (start_objects, start_static_storage_duration_function): Reset DECL_INLINE, set DECL_UNINLINABLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83181 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index d3114de937e..fb976a8015a 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1359,6 +1359,10 @@ rest_of_compilation (tree decl)
timevar_push (TV_REST_OF_COMPILATION);
+ /* There's no need to defer outputting this function any more; we
+ know we want to output it. */
+ DECL_DEFER_OUTPUT (current_function_decl) = 0;
+
/* Register rtl specific functions for cfg. */
rtl_register_cfg_hooks ();
@@ -1425,8 +1429,7 @@ rest_of_compilation (tree decl)
/* Initialize some variables used by the optimizers. */
init_function_for_compilation ();
- if (! DECL_DEFER_OUTPUT (decl))
- TREE_ASM_WRITTEN (decl) = 1;
+ TREE_ASM_WRITTEN (decl) = 1;
/* Now that integrate will no longer see our rtl, we need not
distinguish between the return value of this function and the
@@ -1438,10 +1441,8 @@ rest_of_compilation (tree decl)
purge_hard_subreg_sets (get_insns ());
/* Early return if there were errors. We can run afoul of our
- consistency checks, and there's not really much point in fixing them.
- Don't return yet if -Wreturn-type; we need to do cleanup_cfg. */
- if (((rtl_dump_and_exit || flag_syntax_only) && !warn_return_type)
- || errorcount || sorrycount)
+ consistency checks, and there's not really much point in fixing them. */
+ if (rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount)
goto exit_rest_of_compilation;
timevar_push (TV_JUMP);
@@ -1534,15 +1535,8 @@ rest_of_compilation (tree decl)
purge_line_number_notes (insns);
- timevar_pop (TV_JUMP);
close_dump_file (DFI_jump, print_rtl, insns);
- /* Now is when we stop if -fsyntax-only and -Wreturn-type. */
- if (rtl_dump_and_exit || flag_syntax_only || DECL_DEFER_OUTPUT (decl))
- goto exit_rest_of_compilation;
-
- timevar_push (TV_JUMP);
-
if (optimize)
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);