aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1994-04-04 14:36:19 -0700
committerJim Wilson <wilson@gcc.gnu.org>1994-04-04 14:36:19 -0700
commit0dd532dced00cfcf7f99ee3c6c5003bff0b83cda (patch)
treeec9dc81249ab6c94fa813dd3a76b1fd19acc106a
parent2babb33b576139065880a94bcedb6fbc49bad8a0 (diff)
downloadgcc-0dd532dced00cfcf7f99ee3c6c5003bff0b83cda.zip
gcc-0dd532dced00cfcf7f99ee3c6c5003bff0b83cda.tar.gz
gcc-0dd532dced00cfcf7f99ee3c6c5003bff0b83cda.tar.bz2
(expand_call): If PCC_STATIC_STRUCT_RETURN defined, mark
function as addressable same time as we clear is_integrable. From-SVN: r6964
-rw-r--r--gcc/calls.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 7b4589f..c02c732 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 */
{