Commit b8471b65 by Richard Kenner

(rest_of_compilation): Adjust tests for when to inline and when to

defer.

From-SVN: r8680
parent b6ec8c5f
...@@ -2778,14 +2778,13 @@ rest_of_compilation (decl) ...@@ -2778,14 +2778,13 @@ rest_of_compilation (decl)
compile it by itself, defer decision till end of compilation. compile it by itself, defer decision till end of compilation.
finish_compilation will call rest_of_compilation again finish_compilation will call rest_of_compilation again
for those functions that need to be output. Also defer those for those functions that need to be output. Also defer those
functions that were marked inline but weren't inlined; they functions that we are supposed to defer. */
may never be used. */
if (DECL_DEFER_OUTPUT (decl)
if ((specd || DECL_INLINE (decl)) || (DECL_INLINE (decl)
&& ((! TREE_PUBLIC (decl) && ! TREE_ADDRESSABLE (decl) && ((! TREE_PUBLIC (decl) && ! TREE_ADDRESSABLE (decl)
&& ! flag_keep_inline_functions) && ! flag_keep_inline_functions)
|| DECL_DEFER_OUTPUT (decl) || DECL_EXTERNAL (decl))))
|| DECL_EXTERNAL (decl)))
{ {
#ifdef DWARF_DEBUGGING_INFO #ifdef DWARF_DEBUGGING_INFO
/* Generate the DWARF info for the "abstract" instance /* Generate the DWARF info for the "abstract" instance
...@@ -2822,10 +2821,12 @@ rest_of_compilation (decl) ...@@ -2822,10 +2821,12 @@ rest_of_compilation (decl)
saved_arguments = DECL_ARGUMENTS (decl); saved_arguments = DECL_ARGUMENTS (decl);
TIMEVAR (integration_time, save_for_inline_copying (decl)); TIMEVAR (integration_time, save_for_inline_copying (decl));
} }
}
if (DECL_DEFER_OUTPUT (decl)) /* If specified extern inline but we aren't inlining it, we are
goto exit_rest_of_compilation; done. */
if (specd && DECL_EXTERNAL (decl))
goto exit_rest_of_compilation;
}
TREE_ASM_WRITTEN (decl) = 1; TREE_ASM_WRITTEN (decl) = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment