Commit 7bd169c8 by Jakub Jelinek Committed by Jakub Jelinek

tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts with the exception…

tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts with the exception of debug begin stmt markers appear...

	* tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
	with the exception of debug begin stmt markers appear before
	labels.

From-SVN: r255611
parent 60012ddc
2017-12-13 Jakub Jelinek <jakub@redhat.com>
* tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
with the exception of debug begin stmt markers appear before
labels.
PR bootstrap/83396
* final.c (rest_of_handle_final): Call variable_tracking_main only
if !flag_var_tracking.
......@@ -5380,6 +5380,7 @@ 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);
......@@ -5396,6 +5397,19 @@ 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;
err2 |= verify_gimple_stmt (stmt);
err2 |= verify_location (&blocks, gimple_location (stmt));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment