/* Insns for all of the exception handlers for the current function.
They are currently emitted by the frontend code. */
rtx x_catch_clauses;
+ /* End of exception handler insn sequence. */
+ rtx x_catch_clauses_last;
/* A random data area for the front end's own use. */
struct label_node *x_false_label_stack;
/* Keeps track of the label to resume to should one want to resume
#define catchstack (cfun->eh->x_catchstack)
#define ehqueue (cfun->eh->x_ehqueue)
#define catch_clauses (cfun->eh->x_catch_clauses)
+#define catch_clauses_last (cfun->eh->x_catch_clauses_last)
#define false_label_stack (cfun->eh->x_false_label_stack)
#define caught_return_label_stack (cfun->eh->x_caught_return_label_stack)
#define protect_list (cfun->eh->x_protect_list)
/* Outputs the exception table if we have one. */
extern void output_exception_table PARAMS ((void));
+extern void output_exception_table_data PARAMS ((void));
+
+/* Free the exception table. */
+
+extern void free_exception_table PARAMS((void));
+
+/* Used by the ia64 unwind format to output data for an individual
+ function. */
+
+extern void output_function_exception_table PARAMS((void));
/* Given a return address in ADDR, determine the address we should use
to find the corresponding EH region. */
extern rtx exception_handler_labels;
+/* Determine if the given INSN can throw an exception. */
+
+extern int can_throw PARAMS ((rtx));
+
+/* Return nonzero if nothing in this function can throw. */
+
+extern int nothrow_function_p PARAMS ((void));
+
/* Performs optimizations for exception handling, such as removing
unnecessary exception regions. Invoked from jump_optimize (). */