Commit b13ff1f5 by Richard Biener Committed by Richard Biener

re PR debug/77931 (PASS->FAIL: gdb.cp/namespace.exp: print ina)

2016-10-11  Richard Biener  <rguenther@suse.de>

	PR debug/77931
	* gimple-low.c (lower_gimple_bind): Handle arbitrary common
	sub-chains of BLOCK_VARS and gimple_bind_vars.

From-SVN: r240991
parent 1d0eabee
2016-10-11 Richard Biener <rguenther@suse.de>
PR debug/77931
* gimple-low.c (lower_gimple_bind): Handle arbitrary common
sub-chains of BLOCK_VARS and gimple_bind_vars.
2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
* config/i386/znver1.md : Fix imov/imovx load type reservations.
......
......@@ -420,18 +420,21 @@ lower_gimple_bind (gimple_stmt_iterator *gsi, struct lower_data *data)
/* Scrap DECL_CHAIN up to BLOCK_VARS to ease GC after we no longer
need gimple_bind_vars. */
tree next;
tree end = NULL_TREE;
/* BLOCK_VARS and gimple_bind_vars share a common sub-chain. Find
it by marking all BLOCK_VARS. */
if (gimple_bind_block (stmt))
end = BLOCK_VARS (gimple_bind_block (stmt));
for (tree var = gimple_bind_vars (stmt); var != end; var = next)
for (tree t = BLOCK_VARS (gimple_bind_block (stmt)); t; t = DECL_CHAIN (t))
TREE_VISITED (t) = 1;
for (tree var = gimple_bind_vars (stmt);
var && ! TREE_VISITED (var); var = next)
{
/* Ugh, something is violating the constraint that BLOCK_VARS
is a sub-chain of gimple_bind_vars. */
if (! var)
break;
next = DECL_CHAIN (var);
DECL_CHAIN (var) = NULL_TREE;
}
/* Unmark BLOCK_VARS. */
if (gimple_bind_block (stmt))
for (tree t = BLOCK_VARS (gimple_bind_block (stmt)); t; t = DECL_CHAIN (t))
TREE_VISITED (t) = 0;
lower_sequence (gimple_bind_body_ptr (stmt), data);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment