+2016-09-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/77514
+ * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
+ only forced_stmts sequence.
+
2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-ssanames.h (FOR_EACH_SSA_NAME): New.
+2016-09-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/77514
+ * gcc.dg/torture/pr77514.c: New testcase.
+
2016-09-14 Jakub Jelinek <jakub@redhat.com>
PR c++/77549
--- /dev/null
+/* { dg-do compile } */
+
+void
+m1 (char l0, char e8, int hw)
+{
+ char *rs = &l0;
+
+yu:
+ l0 = 1;
+ while (l0 != 0)
+ {
+ l0 = -l0;
+ l0 += (*rs ^ (l0 &= 1));
+ }
+ for (;;)
+ {
+ if (hw != 0)
+ goto yu;
+ rs = &e8;
+ }
+}
gimple_seq_discard (forced_stmts);
return folded;
}
-
+ /* Likewise if we simplified to sth not queued for insertion. */
+ bool found = false;
+ gsi = gsi_start (forced_stmts);
+ for (; !gsi_end_p (gsi); gsi_next (&gsi))
+ {
+ gimple *stmt = gsi_stmt (gsi);
+ tree forcedname = gimple_get_lhs (stmt);
+ if (forcedname == folded)
+ found = true;
+ }
+ if (! found)
+ {
+ gimple_seq_discard (forced_stmts);
+ return folded;
+ }
gcc_assert (TREE_CODE (folded) == SSA_NAME);
/* If we have any intermediate expressions to the value sets, add them