From af078bb0cf6e9b547c4f883e294f529914339cd0 Mon Sep 17 00:00:00 2001 From: Xinliang David Li Date: Wed, 9 Dec 2009 17:44:47 +0000 Subject: fixing pr42337 From-SVN: r155111 --- gcc/tree-ssa-pre.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'gcc/tree-ssa-pre.c') diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index a3e7ad8..b8e999c 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -1490,10 +1490,17 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, continue; else { + pre_expr leader, result; + bitmap temp = BITMAP_ALLOC (&grand_bitmap_obstack); unsigned int op_val_id = VN_INFO (newnary.op[i])->value_id; - pre_expr leader = find_leader_in_sets (op_val_id, set1, set2); - pre_expr result = phi_translate_1 (leader, set1, set2, + + bitmap_copy (temp, seen); + leader = find_leader_in_sets (op_val_id, set1, set2); + result = phi_translate_1 (leader, set1, set2, pred, phiblock, seen); + bitmap_copy (seen, temp); + BITMAP_FREE (temp); + if (result && result != leader) { tree name = get_representative_for (result); -- cgit v1.1