diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-05-18 11:22:41 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-05-18 11:22:41 +0200 |
commit | 116bc3a4d8ddc47c07bd9e619cd4f860d491069d (patch) | |
tree | e002a97f6a3a48c62d9a153ebadda0baf1093ecc /gcc/tree-ssa.c | |
parent | bf6490b56fc40295607429331a49de4c4ac46371 (diff) | |
download | gcc-116bc3a4d8ddc47c07bd9e619cd4f860d491069d.zip gcc-116bc3a4d8ddc47c07bd9e619cd4f860d491069d.tar.gz gcc-116bc3a4d8ddc47c07bd9e619cd4f860d491069d.tar.bz2 |
re PR tree-optimization/49000 (ICE: verify_ssa failed with -O2 -g)
PR tree-optimization/49000
* tree-ssa.c (execute_update_addresses_taken): Call
maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
be rewritten and decl has been marked for renaming, reset
the debug stmt.
* gcc.dg/pr49000.c: New test.
From-SVN: r173849
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index f596fcd..ba5a20b 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -2230,6 +2230,17 @@ execute_update_addresses_taken (void) } } + else if (gimple_debug_bind_p (stmt) + && gimple_debug_bind_has_value_p (stmt)) + { + tree *valuep = gimple_debug_bind_get_value_ptr (stmt); + tree decl; + maybe_rewrite_mem_ref_base (valuep); + decl = non_rewritable_mem_ref_base (*valuep); + if (decl && symbol_marked_for_renaming (decl)) + gimple_debug_bind_reset_value (stmt); + } + if (gimple_references_memory_p (stmt) || is_gimple_debug (stmt)) update_stmt (stmt); |