(output_inline_function): Turn on flag_no_inline to avoid function integration...
(output_inline_function): Turn on flag_no_inline to avoid function integration once we begin writing deferred output functions. From-SVN: r10488
This commit is contained in:
parent
d904e9ed26
commit
09578c273e
@ -707,10 +707,10 @@ copy_decl_rtls (block)
|
|||||||
modified. In the second case, FNDECL is used for the last time,
|
modified. In the second case, FNDECL is used for the last time,
|
||||||
so modifying the rtl is not a problem.
|
so modifying the rtl is not a problem.
|
||||||
|
|
||||||
??? Actually, we do not verify that FNDECL is not inline expanded
|
We don't have to worry about FNDECL being inline expanded by
|
||||||
by other functions which must also be written down at the end
|
other functions which are written at the end of compilation
|
||||||
of compilation. We could set flag_no_inline to nonzero when
|
because flag_no_inline is turned on when we begin writing
|
||||||
the time comes to write down such functions. */
|
functions at the end of compilation. */
|
||||||
|
|
||||||
void
|
void
|
||||||
save_for_inline_nocopy (fndecl)
|
save_for_inline_nocopy (fndecl)
|
||||||
@ -3003,6 +3003,7 @@ output_inline_function (fndecl)
|
|||||||
{
|
{
|
||||||
rtx head;
|
rtx head;
|
||||||
rtx last;
|
rtx last;
|
||||||
|
int save_flag_no_inline = flag_no_inline;
|
||||||
|
|
||||||
if (output_bytecode)
|
if (output_bytecode)
|
||||||
{
|
{
|
||||||
@ -3097,8 +3098,15 @@ output_inline_function (fndecl)
|
|||||||
/* We're not deferring this any longer. */
|
/* We're not deferring this any longer. */
|
||||||
DECL_DEFER_OUTPUT (fndecl) = 0;
|
DECL_DEFER_OUTPUT (fndecl) = 0;
|
||||||
|
|
||||||
|
/* Integrating function calls isn't safe anymore, so turn on
|
||||||
|
flag_no_inline. */
|
||||||
|
flag_no_inline = 1;
|
||||||
|
|
||||||
/* Compile this function all the way down to assembly code. */
|
/* Compile this function all the way down to assembly code. */
|
||||||
rest_of_compilation (fndecl);
|
rest_of_compilation (fndecl);
|
||||||
|
|
||||||
|
/* Reset flag_no_inline to its original value. */
|
||||||
|
flag_no_inline = save_flag_no_inline;
|
||||||
|
|
||||||
current_function_decl = 0;
|
current_function_decl = 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user