summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1994-04-04 21:36:19 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1994-04-04 21:36:19 +0000
commitd7e12e9e96e44ef4134f5f346309471df2b75ec0 (patch)
treeec9dc81249ab6c94fa813dd3a76b1fd19acc106a /gcc/calls.c
parent92ded618a3a6a0341b01115270a7ff2c9849bf97 (diff)
downloadgcc-d7e12e9e96e44ef4134f5f346309471df2b75ec0.tar.gz
(expand_call): If PCC_STATIC_STRUCT_RETURN defined, mark
function as addressable same time as we clear is_integrable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6964 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 7b4589fb04d..c02c732a232 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -631,7 +631,15 @@ expand_call (exp, target, ignore)
#ifdef PCC_STATIC_STRUCT_RETURN
{
pcc_struct_value = 1;
- is_integrable = 0; /* Easier than making that case work right. */
+ /* Easier than making that case work right. */
+ if (is_integrable)
+ {
+ /* In case this is a static function, note that it has been
+ used. */
+ if (! TREE_ADDRESSABLE (fndecl))
+ mark_addressable (fndecl);
+ is_integrable = 0;
+ }
}
#else /* not PCC_STATIC_STRUCT_RETURN */
{