re PR c++/78383 (label as values ICE with C++ lambda)

2016-11-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/78383
	* tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn
	non-local goto into CFG.

From-SVN: r242543
This commit is contained in:
Richard Biener 2016-11-17 12:39:24 +00:00 committed by Richard Biener
parent bef69eb57d
commit b05c3fd684
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-11-17 Richard Biener <rguenther@suse.de>
PR middle-end/78383
* tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn
non-local goto into CFG.
2016-11-17 Richard Biener <rguenther@suse.de>
* common.opt (ftree-loop-if-convert-stores): Mark as preserved for

View File

@ -230,6 +230,8 @@ cleanup_control_flow_bb (basic_block bb, bool first_p)
edges which do not go to the right block. For the one
edge which goes to the right block, fix up its flags. */
label = TREE_OPERAND (gimple_goto_dest (stmt), 0);
if (DECL_CONTEXT (label) != cfun->decl)
return retval;
target_block = label_to_block (label);
for (ei = ei_start (bb->succs); (e = ei_safe_edge (ei)); )
{