Commit c8ce33fa by Richard Guenther Committed by Richard Biener

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
parent 256f88c6
2008-10-01 Richard Guenther <rguenther@suse.de> 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.
2008-10-01 Richard Guenther <rguenther@suse.de>
PR middle-end/37285 PR middle-end/37285
* tree-vrp.c (execute_vrp): If we optimized away the default * tree-vrp.c (execute_vrp): If we optimized away the default
case make sure to promote the label that got in place of it case make sure to promote the label that got in place of it
......
2008-10-01 Richard Guenther <rguenther@suse.de> 2008-10-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37617
* gcc.c-torture/compile/pr37617.c: New testcase.
2008-10-01 Richard Guenther <rguenther@suse.de>
PR middle-end/37285 PR middle-end/37285
* gcc.c-torture/compile/pr37285.c: New testcase. * gcc.c-torture/compile/pr37285.c: New testcase.
......
typedef union
{
char *string;
double dval;
float fval;
} yystype;
char *f(void)
{
yystype tok;
tok.dval = 0;
return (tok.string);
}
char *f1(void)
{
yystype tok;
tok.fval = 0;
return (tok.string);
}
...@@ -2885,7 +2885,8 @@ create_expression_by_pieces (basic_block block, pre_expr expr, ...@@ -2885,7 +2885,8 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
VN_INFO (forcedname)->value_id = get_next_value_id (); VN_INFO (forcedname)->value_id = get_next_value_id ();
nameexpr = get_or_alloc_expr_for_name (forcedname); nameexpr = get_or_alloc_expr_for_name (forcedname);
add_to_value (VN_INFO (forcedname)->value_id, nameexpr); 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); bitmap_value_replace_in_set (AVAIL_OUT (block), nameexpr);
} }
mark_symbols_for_renaming (stmt); mark_symbols_for_renaming (stmt);
......
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