emit_line_note (input_filename, lineno);
expand_start_case (1, cond, TREE_TYPE (cond), "switch statement");
expand_stmt (SWITCH_BODY (t));
- expand_end_case (cond);
+ expand_end_case_type (cond, SWITCH_TYPE (t));
}
/* Create a CASE_LABEL tree node and return it. */
/* Generate the RTL for a DECL_CLEANUP. */
void
-genrtl_decl_cleanup (decl, cleanup)
- tree decl;
- tree cleanup;
+genrtl_decl_cleanup (t)
+ tree t;
{
+ tree decl = CLEANUP_DECL (t);
if (!decl || (DECL_SIZE (decl) && TREE_TYPE (decl) != error_mark_node))
- expand_decl_cleanup (decl, cleanup);
+ expand_decl_cleanup_eh (decl, CLEANUP_EXPR (t), CLEANUP_EH_ONLY (t));
}
/* We're about to expand T, a statement. Set up appropriate context
genrtl_scope_stmt (t);
break;
+ case CLEANUP_STMT:
+ genrtl_decl_cleanup (t);
+ break;
+
default:
if (lang_expand_stmt)
(*lang_expand_stmt) (t);