diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-10-16 22:49:07 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-10-16 22:49:07 +0000 |
commit | 88d8330d67ec17569e4b7e52989934bf6908a1f0 (patch) | |
tree | 01d1822515deb56bf92d32e9ff0cc1bcea39dc1b /gcc/cfgexpand.c | |
parent | da4fdf2d3ff45366d9378882ad1646306ceee305 (diff) | |
download | gcc-88d8330d67ec17569e4b7e52989934bf6908a1f0.zip gcc-88d8330d67ec17569e4b7e52989934bf6908a1f0.tar.gz gcc-88d8330d67ec17569e4b7e52989934bf6908a1f0.tar.bz2 |
re PR rtl-optimization/54870 (gfortran.dg/array_constructor_4.f90 FAILs)
PR rtl-optimization/54870
* tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
* cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
SSA_NAME pointer that points to a partition if there is at least
one variable with it set in the partition.
* dse.c (local_variable_can_escape): New predicate.
(can_escape): Call it.
* gimplify.c (mark_addressable): If this is a partitioned decl, also
mark the SSA_NAME pointer that points to a partition.
From-SVN: r192517
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r-- | gcc/cfgexpand.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 57589ad..4ae1600 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -635,6 +635,8 @@ update_alias_info_with_stack_vars (void) (void *)(size_t) uid)) = part; *((tree *) pointer_map_insert (cfun->gimple_df->decls_to_pointers, decl)) = name; + if (TREE_ADDRESSABLE (decl)) + TREE_ADDRESSABLE (name) = 1; } /* Make the SSA name point to all partition members. */ |