------- Comment #4 from spark at gcc dot gnu dot org 2007-03-12 23:46 -------
This little patch below seems to get around the problem,
though I'm not really sure this is sufficient or not.
Index: tree-cfg.c
===================================================================
--- tree-cfg.c (revision 122871)
+++ tree-cfg.c (working copy)
@@ -2039,7 +2039,9 @@ find_taken_edge (basic_block bb, tree va
return find_taken_edge_switch_expr (bb, val);
if (computed_goto_p (stmt))
- return find_taken_edge_computed_goto (bb, TREE_OPERAND( val, 0));
+ return (TREE_CODE (val) == LABEL_EXPR)
+ ? find_taken_edge_computed_goto (bb, TREE_OPERAND(val, 0))
+ : NULL;
gcc_unreachable ();
}
@@ -2054,6 +2056,8 @@ find_taken_edge_computed_goto (basic_blo
basic_block dest;
edge e = NULL;
+ gcc_assert (TREE_CODE (val) == LABEL_EXPR);
+
dest = label_to_block (val);
if (dest)
{
--
spark at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |spark at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30984