diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-06-08 10:52:37 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-06-08 06:52:37 -0400 |
commit | aeb302bbec86aff44fadaad0c9c9bf5e59cbe3f5 (patch) | |
tree | 2c388127a95218487e93567ec1198ce237ce1ede /gcc/function.c | |
parent | 8b015896c2a46c08cd90f2686a8fb533709e984c (diff) | |
download | gcc-aeb302bbec86aff44fadaad0c9c9bf5e59cbe3f5.zip gcc-aeb302bbec86aff44fadaad0c9c9bf5e59cbe3f5.tar.gz gcc-aeb302bbec86aff44fadaad0c9c9bf5e59cbe3f5.tar.bz2 |
function.c: Define current_function_cannot_inline.
* function.c: Define current_function_cannot_inline.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
* function.h (struct function): Provide it a home.
* output.h: Declare it.
* integrate.c (function_cannot_inline_p): Check it.
* decl.c (cp_finish_decl): Disable inlining of extern inlines
with static variables.
From-SVN: r20332
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c index 00e7546..f8e3cd4 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -214,6 +214,9 @@ int current_function_uses_pic_offset_table; /* The arg pointer hard register, or the pseudo into which it was copied. */ rtx current_function_internal_arg_pointer; +/* Language-specific reason why the current function cannot be made inline. */ +char *current_function_cannot_inline; + /* The FUNCTION_DECL for an inline function currently being expanded. */ tree inline_function_decl; @@ -507,6 +510,7 @@ push_function_context_to (context) p->uses_const_pool = current_function_uses_const_pool; p->uses_pic_offset_table = current_function_uses_pic_offset_table; p->internal_arg_pointer = current_function_internal_arg_pointer; + p->cannot_inline = current_function_cannot_inline; p->max_parm_reg = max_parm_reg; p->parm_reg_stack_loc = parm_reg_stack_loc; p->outgoing_args_size = current_function_outgoing_args_size; @@ -588,6 +592,7 @@ pop_function_context_from (context) current_function_uses_const_pool = p->uses_const_pool; current_function_uses_pic_offset_table = p->uses_pic_offset_table; current_function_internal_arg_pointer = p->internal_arg_pointer; + current_function_cannot_inline = p->cannot_inline; max_parm_reg = p->max_parm_reg; parm_reg_stack_loc = p->parm_reg_stack_loc; current_function_outgoing_args_size = p->outgoing_args_size; @@ -5319,6 +5324,7 @@ init_function_start (subr, filename, line) current_function_epilogue_delay_list = 0; current_function_uses_const_pool = 0; current_function_uses_pic_offset_table = 0; + current_function_cannot_inline = 0; /* We have not yet needed to make a label to jump to for tail-recursion. */ tail_recursion_label = 0; |