gcc/
2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
PR debug/70935
* tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
loop latch destination.
gcc/testsuite/
2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
PR debug/70935
* gcc.dg/torture/pr70935.c: New test.
From-SVN: r235962
+2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ PR debug/70935
+ * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
+ loop latch destination.
+
2016-05-06 Martin Liska <mliska@suse.cz>
* tree-ssa-uninit.c: Apply manual changes
+2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ PR debug/70935
+ * gcc.dg/torture/pr70935.c: New test.
+
2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
PR target/58219
--- /dev/null
+/* { dg-do compile } */\r
+/* { dg-options "-O3 -g" } */\r
+\r
+int d0, sj, v0, rp, zi;\r
+\r
+void\r
+zn(void)\r
+{\r
+ if (v0 != 0)\r
+ {\r
+ int *js, *r3;\r
+ int pm, gc;\r
+\r
+ for (gc = 0; gc < 1; ++gc)\r
+ {\r
+ sj = 1;\r
+ while (sj != 0)\r
+ ;\r
+ }\r
+ r3 = ±\r
+ *js = (long)&gc;\r
+ka:\r
+ for (d0 = 0; d0 < 2; ++d0)\r
+ {\r
+ d0 = zi;\r
+ if (zi)\r
+ for (pm = 2; pm != 0; --pm)\r
+ ;\r
+ }\r
+ while (*r3 != 0)\r
+ {\r
+ while (pm)\r
+ ;\r
+ ++r3;\r
+ }\r
+ }\r
+ rp = 0;\r
+ goto ka;\r
+}
guard_edge->src->index, guard_edge->dest->index);
return NULL;
}
+ if (guard_edge->dest == loop->latch)
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Guard edge destination is loop latch.\n");
+ return NULL;
+ }
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file,