/* Used to cache a call to __unwind_function. */
static tree Unwind;
-/* Holds a ready to emit call to "terminate". */
-static tree TerminateFunctionCall;
-
/* ====================================================================== */
NOT_BUILT_IN, NULL_PTR);
Unexpected = default_conversion (unexpected_fndecl);
- Terminate = default_conversion (terminate_fndecl);
+ Terminate = terminate_fndecl;
SetTerminate = default_conversion (set_terminate_fndecl);
SetUnexpected = default_conversion (set_unexpected_fndecl);
CatchMatch = default_conversion (catch_match_fndecl);
Unwind = default_conversion (unwind_fndecl);
BuiltinReturnAddress = default_conversion (builtin_return_address_fndecl);
- TerminateFunctionCall = build_function_call (Terminate, NULL_TREE);
-
pop_lang_context ();
d = build_decl (VAR_DECL, get_identifier ("__eh_pc"), ptr_type_node);
init = ocp_convert (TREE_TYPE (decl), init,
CONV_IMPLICIT|CONV_FORCE_TEMP, 0);
init = build (TRY_CATCH_EXPR, TREE_TYPE (init), init,
- TerminateFunctionCall);
+ build_function_call (Terminate, NULL_TREE));
}
/* Let `cp_finish_decl' know that this initializer is ok. */
/* no it didn't --> therefore we need to call terminate */
emit_label (gotta_call_terminate);
do_function_call (Terminate, NULL_TREE, NULL_TREE);
- assemble_external (TREE_OPERAND (Terminate, 0));
{
rtx ret_val, x;
emit_label (cont);
jumpif (make_tree (integer_type_node, flag), end);
do_function_call (Terminate, NULL_TREE, NULL_TREE);
- assemble_external (TREE_OPERAND (Terminate, 0));
emit_barrier ();
do_pending_stack_adjust ();
RTL_EXPR_SEQUENCE (expr) = get_insns ();
the setjmp/longjmp approach. */
if (exceptions_via_longjmp == 0)
{
- /* Is this necessary? */
- assemble_external (TREE_OPERAND (Terminate, 0));
-
expand_eh_region_start ();
}
catch_clauses = NULL_RTX;
if (exceptions_via_longjmp == 0)
- expand_eh_region_end (TerminateFunctionCall);
+ expand_eh_region_end (build_function_call (Terminate, NULL_TREE));
expand_leftover_cleanups ();