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
+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
+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
--- /dev/null
+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);
+}
+
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);