diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2005-09-15 06:15:36 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2005-09-15 06:15:36 +0000 |
commit | d430cbe706e3c8bc6fa98102ec5f7480b60d3180 (patch) | |
tree | 7007efb84974a63a0490230243152fae4ffec932 /gcc/tree-nested.c | |
parent | fca59ed2c97e622bd51cdd67911bae5c347eb399 (diff) | |
download | gcc-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.c | 8 |
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; } |