diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-live.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 93a143e1..6768355 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-10-05 Richard Guenther <rguenther@suse.de> + + PR middle-end/54811 + * tree-ssa-live.c (clear_unused_block_pointer_1): Look at + DECL_DEBUG_EXPR again. + 2012-10-05 Jan Hubicka <jh@suse.cz> Jakub Jelinek <jakub@redhat.com> diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index 7bf89d1..b63dc7e 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -621,6 +621,11 @@ clear_unused_block_pointer_1 (tree *tp, int *, void *) if (EXPR_P (*tp) && TREE_BLOCK (*tp) && !TREE_USED (TREE_BLOCK (*tp))) TREE_SET_BLOCK (*tp, NULL); + if (TREE_CODE (*tp) == VAR_DECL && DECL_DEBUG_EXPR_IS_FROM (*tp)) + { + tree debug_expr = DECL_DEBUG_EXPR (*tp); + walk_tree (&debug_expr, clear_unused_block_pointer_1, NULL, NULL); + } return NULL_TREE; } |