aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-live.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-07-02 10:18:24 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-07-02 10:18:24 +0000
commit91deb93712047ca1b5d3d5ddf8b0f12b4a164ef8 (patch)
tree311b16650e82552b4d5ec734b325f969addba653 /gcc/tree-ssa-live.c
parent3e37f41e5ad844b1a7e5717bd04c93740699e1d7 (diff)
downloadgcc-91deb93712047ca1b5d3d5ddf8b0f12b4a164ef8.zip
gcc-91deb93712047ca1b5d3d5ddf8b0f12b4a164ef8.tar.gz
gcc-91deb93712047ca1b5d3d5ddf8b0f12b4a164ef8.tar.bz2
tree-ssa-live.c (remove_unused_locals): Do not remove heap variables.
2009-07-02 Richard Guenther <rguenther@suse.de> * tree-ssa-live.c (remove_unused_locals): Do not remove heap variables. * tree-ssa-structalias.c (handle_lhs_call): Delay setting of DECL_EXTERNAL for HEAP variables. (compute_points_to_sets): Set DECL_EXTERNAL for escaped HEAP variables. Do not adjust RESTRICT vars. (find_what_var_points_to): Nobody cares if something points to READONLY. From-SVN: r149170
Diffstat (limited to 'gcc/tree-ssa-live.c')
-rw-r--r--gcc/tree-ssa-live.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index a710c65..d416694 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -795,6 +795,7 @@ remove_unused_locals (void)
&& TREE_CODE (t) != PARM_DECL
&& TREE_CODE (t) != RESULT_DECL
&& !(ann = var_ann (t))->used
+ && !ann->is_heapvar
&& !TREE_ADDRESSABLE (t))
remove_referenced_var (t);
remove_unused_scope_block_p (DECL_INITIAL (current_function_decl));