static void genericize_eh_spec_block (tree *stmt_p) { tree body = EH_SPEC_STMTS (*stmt_p); tree allowed = EH_SPEC_RAISES (*stmt_p); tree failure = build_call_n (call_unexpected_node, 1, build_exc_ptr ()); *stmt_p = build_gimple_eh_filter_tree (body, allowed, failure); }
static enum gimplify_status gimplify_must_not_throw_expr (tree *expr_p, gimple_seq *pre_p) { tree stmt = *expr_p; tree temp = voidify_wrapper_expr (stmt, NULL); tree body = TREE_OPERAND (stmt, 0); stmt = build_gimple_eh_filter_tree (body, NULL_TREE, build_call_n (terminate_node, 0)); gimplify_and_add (stmt, pre_p); if (temp) { *expr_p = temp; return GS_OK; } *expr_p = NULL; return GS_ALL_DONE; }
tree build_exc_ptr (void) { return build_call_n (builtin_decl_explicit (BUILT_IN_EH_POINTER), 1, integer_zero_node); }
tree build_exc_ptr (void) { return build_call_n (built_in_decls [BUILT_IN_EH_POINTER], 1, integer_zero_node); }