diff options
| author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-15 06:15:36 +0000 |
|---|---|---|
| committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-15 06:15:36 +0000 |
| commit | 8ea322c97b09005ce36aa3dc91bd5ea61a08b0c6 (patch) | |
| tree | 7007efb84974a63a0490230243152fae4ffec932 | |
| parent | a449953cf9f859da496ecfeee7d2d05c5af3300b (diff) | |
| download | ppe42-gcc-8ea322c97b09005ce36aa3dc91bd5ea61a08b0c6.tar.gz ppe42-gcc-8ea322c97b09005ce36aa3dc91bd5ea61a08b0c6.zip | |
* tree-nested.c (get_frame_type): Mark the "non-local frame structure"
as addressable.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104300 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/tree-nested.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e111d5d87da..d901c8c49bc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * tree-nested.c (get_frame_type): Mark the "non-local frame structure" + as addressable. + 2005-09-15 Michael Matz <matz@suse.de> * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF. diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index 6f0b7fd20f0..d42c583ce51 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; } |

