tree-if-conv.c:tree_if_convert_stmt uses TREE_OPERAND (t, 1) for t being GOTO_EXPR like so:
case GOTO_EXPR: /* Unconditional goto */ add_to_predicate_list (bb_for_stmt (TREE_OPERAND (t, 1)), cond); bsi_remove (bsi); cond = NULL_TREE; break; GOTO_EXPR has only one operand, so TREE_OPERAND (t, 1) is wrong. Also, nonlocal gotos are represented using __builtin_nonlocal_goto, computed gotos are represented using GOTO_EXPR, and all other gotos are represented implicitly. I don't think the code there is designed to handle computed gotos, but I could be wrong. -- Summary: TREE_OPERAND (t, 1) is referenced for t being GOTO_EXPR Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kazu at cs dot umass dot edu CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18472