summaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-08 10:52:37 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-08 10:52:37 +0000
commit41124432afe1975743312e7c10f8dd712117cdcb (patch)
tree2c388127a95218487e93567ec1198ce237ce1ede /gcc/function.c
parent8b59469ae1fb1868b69bb9508e60c568279f52f2 (diff)
downloadgcc-41124432afe1975743312e7c10f8dd712117cdcb.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20332 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 00e7546b268..f8e3cd40667 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;