re PR debug/50317 (missing DW_OP_GNU_implicit_pointer)
PR debug/50317 * tree-ssa.c (execute_update_addresses_taken): Remove var ={v} {CLOBBER} stmts instead of rewriting them into var_N ={v} {CLOBBER}. From-SVN: r181788
This commit is contained in:
parent
d3b623c7af
commit
c32f25b885
2 changed files with 20 additions and 1 deletions
|
@ -1,5 +1,10 @@
|
|||
2011-11-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/50317
|
||||
* tree-ssa.c (execute_update_addresses_taken): Remove
|
||||
var ={v} {CLOBBER} stmts instead of rewriting them into
|
||||
var_N ={v} {CLOBBER}.
|
||||
|
||||
PR middle-end/50907
|
||||
* function.c (convert_jumps_to_returns): When redirecting an edge
|
||||
succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
|
||||
|
|
|
@ -2118,7 +2118,7 @@ execute_update_addresses_taken (void)
|
|||
if (update_vops)
|
||||
{
|
||||
FOR_EACH_BB (bb)
|
||||
for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
|
||||
for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi);)
|
||||
{
|
||||
gimple stmt = gsi_stmt (gsi);
|
||||
|
||||
|
@ -2159,6 +2159,18 @@ execute_update_addresses_taken (void)
|
|||
if (gimple_assign_lhs (stmt) != lhs)
|
||||
gimple_assign_set_lhs (stmt, lhs);
|
||||
|
||||
/* For var ={v} {CLOBBER}; where var lost
|
||||
TREE_ADDRESSABLE just remove the stmt. */
|
||||
if (DECL_P (lhs)
|
||||
&& TREE_CLOBBER_P (rhs)
|
||||
&& symbol_marked_for_renaming (lhs))
|
||||
{
|
||||
unlink_stmt_vdef (stmt);
|
||||
gsi_remove (&gsi, true);
|
||||
release_defs (stmt);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (gimple_assign_rhs1 (stmt) != rhs)
|
||||
{
|
||||
gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
|
||||
|
@ -2205,6 +2217,8 @@ execute_update_addresses_taken (void)
|
|||
if (gimple_references_memory_p (stmt)
|
||||
|| is_gimple_debug (stmt))
|
||||
update_stmt (stmt);
|
||||
|
||||
gsi_next (&gsi);
|
||||
}
|
||||
|
||||
/* Update SSA form here, we are called as non-pass as well. */
|
||||
|
|
Loading…
Add table
Reference in a new issue