2015-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/65517
* tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
for fixup if necessary.
* gcc.dg/torture/pr65517.c: New testcase.
From-SVN: r221619
+2015-03-24 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/65517
+ * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
+ for fixup if necessary.
+
2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
* doc/extend.texi (Function Attributes): Add @cindex entries
+2015-03-24 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/65517
+ * gcc.dg/torture/pr65517.c: New testcase.
+
2015-03-24 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coindexed_1.f90: Moved from
--- /dev/null
+/* { dg-do compile } */\r
+\r
+typedef void (*argmatch_exit_fn)();\r
+int a;\r
+void __argmatch_die () { __builtin_exit (0); }\r
+\r
+int\r
+main ()\r
+{\r
+ while (1)\r
+ {\r
+ argmatch_exit_fn b = __argmatch_die;\r
+ if (a)\r
+ b ();\r
+ }\r
+ return 0;\r
+}\r
basic_block bb, dbb;
bitmap_iterator bi;
+ /* If we are removing a path inside a non-root loop that may change
+ loop ownership of blocks or remove loops. Mark loops for fixup. */
+ if (current_loops
+ && loop_outer (e->src->loop_father) != NULL
+ && e->src->loop_father == e->dest->loop_father)
+ loops_state_set (LOOPS_NEED_FIXUP);
+
if (!dom_info_available_p (CDI_DOMINATORS))
{
remove_edge (e);