- int *region_index;
- handler_info ***handlers;
- int *num_handlers;
- int *outer_index;
- int region_count;
-} eh_nesting_info;
-
-/* Initialize the eh_nesting_info structure. */
-
-eh_nesting_info *init_eh_nesting_info PROTO((void));
-
-/* Get a list of handlers reachable from a an exception region/insn. */
-
-int reachable_handlers PROTO((int, eh_nesting_info *, rtx,
- handler_info ***handlers));
-
-/* Free the eh_nesting_info structure. */
-
-void free_eh_nesting_info PROTO((eh_nesting_info *));
-
-extern void init_eh PROTO((void));
-
-/* Initialization for the per-function EH data. */
-
-extern void init_eh_for_function PROTO((void));
-
-/* Generate an exception label. Use instead of gen_label_rtx */
-
-extern rtx gen_exception_label PROTO((void));
-
-/* Adds an EH table entry for EH entry number N. Called from
- final_scan_insn for NOTE_INSN_EH_REGION_BEG. */
-
-extern void add_eh_table_entry PROTO((int n));
-
-/* Start a catch clause, triggered by runtime value paramter. */
-
-#ifdef TREE_CODE
-extern void start_catch_handler PROTO((tree));
-#endif
-
-/* End an individual catch clause. */
-
-extern void end_catch_handler PROTO((void));
-
-/* Returns a non-zero value if we need to output an exception table. */
-
-extern int exception_table_p PROTO((void));
-
-/* Outputs the exception table if we have one. */
-
-extern void output_exception_table PROTO((void));
-
-/* Given a return address in ADDR, determine the address we should use
- to find the corresponding EH region. */
-
-extern rtx eh_outer_context PROTO((rtx addr));
-
-/* Called at the start of a block of try statements for which there is
- a supplied catch handler. */
-
-extern void expand_start_try_stmts PROTO((void));
-
-/* Called at the start of a block of catch statements. It terminates the
- previous set of try statements. */
-
-extern void expand_start_all_catch PROTO((void));
-
-/* Called at the end of a block of catch statements. */
-
-extern void expand_end_all_catch PROTO((void));
-
-#ifdef TREE_CODE
-/* Create a new exception region and add the handler for the region
- onto a list. These regions will be ended (and their handlers
- emitted) when end_protect_partials is invoked. */
-
-extern void add_partial_entry PROTO((tree handler));
-#endif
-
-/* End all of the pending exception regions that have handlers added with
- push_protect_entry (). */
-
-extern void end_protect_partials PROTO((void));
-
-/* An internal throw. */
-
-extern void expand_internal_throw PROTO((void));
-
-/* Called from expand_exception_blocks and expand_end_catch_block to
- expand and pending handlers. */
-
-extern void expand_leftover_cleanups PROTO((void));
-
-/* If necessary, emit insns to get EH context for the current
- function. */
-
-extern void emit_eh_context PROTO((void));
-
-/* Builds a list of handler labels and puts them in the global
- variable exception_handler_labels. */
-
-extern void find_exception_handler_labels PROTO((void));
-
-/* Determine if an arbitrary label is an exception label */
-
-extern int is_exception_handler_label PROTO((int));
-
-/* Performs sanity checking on the check_exception_handler_labels
- list. */
-
-extern void check_exception_handler_labels PROTO((void));
-
-/* Keeps track of the label used as the context of a throw to rethrow an
- exception to the outer exception region. */
-
-extern struct label_node *outer_context_label_stack;
-
-/* A list of labels used for exception handlers. It is created by
- find_exception_handler_labels for the optimization passes. */
-
-extern rtx exception_handler_labels;
-
-/* Performs optimizations for exception handling, such as removing
- unnecessary exception regions. Invoked from jump_optimize (). */
-
-extern void exception_optimize PROTO((void));
-
-/* Return EH context (and set it up once per fn). */
-extern rtx get_eh_context PROTO((void));
-
-/* Get the dynamic handler chain. */
-extern rtx get_dynamic_handler_chain PROTO((void));
-
-/* Get the dynamic cleanup chain. */
-extern rtx get_dynamic_cleanup_chain PROTO((void));
-
-/* Throw an exception. */
-
-extern void emit_throw PROTO((void));
-
-/* One to use setjmp/longjmp method of generating code. */
-
-extern int exceptions_via_longjmp;
-
-/* One to enable asynchronous exception support. */
-
-extern int asynchronous_exceptions;
-
-/* One to protect cleanup actions with a handler that calls
- __terminate, zero otherwise. */
-
-extern int protect_cleanup_actions_with_terminate;
-
-#ifdef TREE_CODE
-extern tree protect_with_terminate PROTO((tree));
-#endif
-
-extern void expand_fixup_region_start PROTO((void));
-#ifdef TREE_CODE
-extern void expand_fixup_region_end PROTO((tree));
-#endif
-
-/* Various hooks for the DWARF 2 __throw routine. */
-
-void expand_builtin_unwind_init PROTO((void));
-rtx expand_builtin_dwarf_fp_regnum PROTO((void));
-#ifdef TREE_CODE
-rtx expand_builtin_frob_return_addr PROTO((tree));
-rtx expand_builtin_extract_return_addr PROTO((tree));
-void expand_builtin_init_dwarf_reg_sizes PROTO((tree));
-void expand_builtin_eh_return PROTO((tree, tree, tree));
-#endif
-void expand_eh_return PROTO((void));
-
-
-/* Checking whether 2 instructions are within the same exception region. */
-
-int in_same_eh_region PROTO((rtx, rtx));
-void free_insn_eh_region PROTO((void));
-void init_insn_eh_region PROTO((rtx, int));
-
-#ifdef rtx
-#undef rtx
-#endif