+2020-01-15 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/93273
+ * tree-eh.c (sink_clobbers): If we already visited the destination
+ block do not defer insertion.
+ (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
+ the purpose of defered insertion.
+
2020-01-15 Jakub Jelinek <jakub@redhat.com>
* BASE-VER: Bump to 10.0.1.
+2020-01-15 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/93273
+ * g++.dg/torture/pr93273.C: New testcase.
+
2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
PR tree-optimization/93247
gimple *first_sunk = NULL;
gimple *last_sunk = NULL;
- if (sunk)
+ if (sunk && !(succbb->flags & BB_VISITED))
dgsi = gsi_start (sunk[succbb->index]);
else
dgsi = gsi_after_labels (succbb);
else if (!any_resx_to_process)
sink_clobbers (bb, NULL, &any_resx_to_process);
}
+ bb->flags &= ~BB_VISITED;
}
if (redirected)
{
gsi_insert_seq_before (&gsi, sunk[bb->index], GSI_NEW_STMT);
sunk[bb->index] = NULL;
}
+ bb->flags |= BB_VISITED;
}
free (rpo);
free (sunk);