diff options
author | Richard Guenther <rguenther@suse.de> | 2008-10-01 16:23:23 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-10-01 16:23:23 +0000 |
commit | c8ce33fa7fec7d4d0c0e2a8b8bb535b6d5cba0e0 (patch) | |
tree | 0d6ab17c627566b006769ae664f2d3297a608ae0 /gcc/tree-ssa-pre.c | |
parent | 256f88c6c0f6ffe9083a4fc3fb4eded341c772a4 (diff) | |
download | gcc-c8ce33fa7fec7d4d0c0e2a8b8bb535b6d5cba0e0.zip gcc-c8ce33fa7fec7d4d0c0e2a8b8bb535b6d5cba0e0.tar.gz gcc-c8ce33fa7fec7d4d0c0e2a8b8bb535b6d5cba0e0.tar.bz2 |
re PR tree-optimization/37617 (ICE on valid code)
2008-10-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37617
* tree-ssa-pre.c (create_expression_by_pieces): During FRE
do not add to the NEW_SETS.
* gcc.c-torture/compile/pr37617.c: New testcase.
From-SVN: r140816
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index cd344af..84c884b 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -2885,7 +2885,8 @@ create_expression_by_pieces (basic_block block, pre_expr expr, VN_INFO (forcedname)->value_id = get_next_value_id (); nameexpr = get_or_alloc_expr_for_name (forcedname); add_to_value (VN_INFO (forcedname)->value_id, nameexpr); - bitmap_value_replace_in_set (NEW_SETS (block), nameexpr); + if (!in_fre) + bitmap_value_replace_in_set (NEW_SETS (block), nameexpr); bitmap_value_replace_in_set (AVAIL_OUT (block), nameexpr); } mark_symbols_for_renaming (stmt); |