Hi!
I'll try to read it in more details later today, but one thing I've noticed:
On Thu, Dec 14, 2017 at 11:51:29PM -0200, Alexandre Oliva wrote:
> @@ -5380,7 +5410,6 @@ verify_gimple_in_cfg (struct function *fn, bool
> verify_nothrow)
> err |= err2;
> }
>
> - bool label_allowed = true;
> for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
> {
> gimple *stmt = gsi_stmt (gsi);
> @@ -5397,19 +5426,6 @@ verify_gimple_in_cfg (struct function *fn, bool
> verify_nothrow)
> err2 = true;
> }
>
> - /* Labels may be preceded only by debug markers, not debug bind
> - or source bind or any other statements. */
> - if (gimple_code (stmt) == GIMPLE_LABEL)
> - {
> - if (!label_allowed)
> - {
> - error ("gimple label in the middle of a basic block");
> - err2 = true;
> - }
> - }
> - else if (!gimple_debug_begin_stmt_p (stmt))
> - label_allowed = false;
> -
Please don't revert the above 2 hunks. Instead just remove the
> - else if (!gimple_debug_begin_stmt_p (stmt))
> - label_allowed = false;
lines only from it and adjust the comment. We want to verify there are
no statements before labels.
Jakub