aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-nested.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2005-09-15 06:15:36 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2005-09-15 06:15:36 +0000
commitd430cbe706e3c8bc6fa98102ec5f7480b60d3180 (patch)
tree7007efb84974a63a0490230243152fae4ffec932 /gcc/tree-nested.c
parentfca59ed2c97e622bd51cdd67911bae5c347eb399 (diff)
downloadgcc-d430cbe706e3c8bc6fa98102ec5f7480b60d3180.zip
gcc-d430cbe706e3c8bc6fa98102ec5f7480b60d3180.tar.gz
gcc-d430cbe706e3c8bc6fa98102ec5f7480b60d3180.tar.bz2
tree-nested.c (get_frame_type): Mark the "non-local frame structure" as addressable.
* tree-nested.c (get_frame_type): Mark the "non-local frame structure" as addressable. From-SVN: r104300
Diffstat (limited to 'gcc/tree-nested.c')
-rw-r--r--gcc/tree-nested.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index 6f0b7fd..d42c583 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -220,6 +220,14 @@ get_frame_type (struct nesting_info *info)
info->frame_type = type;
info->frame_decl = create_tmp_var_for (info, type, "FRAME");
+
+ /* ??? Always make it addressable for now, since it is meant to
+ be pointed to by the static chain pointer. This pessimizes
+ when it turns out that no static chains are needed because
+ the nested functions referencing non-local variables are not
+ reachable, but the true pessimization is to create the non-
+ local frame structure in the first place. */
+ TREE_ADDRESSABLE (info->frame_decl) = 1;
}
return type;
}