diff options
Diffstat (limited to 'gcc/except.h')
-rw-r--r-- | gcc/except.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/gcc/except.h b/gcc/except.h index 607544706e3..0ebdd9f3275 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -1,5 +1,5 @@ /* Exception Handling interface routines. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. Contributed by Mike Stump <mrs@cygnus.com>. This file is part of GNU CC. @@ -65,6 +65,7 @@ struct eh_entry { tree finalization; int label_used; rtx false_label; + rtx rethrow_label; }; /* A list of EH_ENTRYs. ENTRY is the entry; CHAIN points to the next @@ -228,19 +229,13 @@ void set_exception_version_code PROTO((int)); typedef struct handler_info { - rtx handler_label; + rtx handler_label; + int handler_number; void *type_info; struct handler_info *next; } handler_info; -/* Add a new eh_entry for this function, The parameter specifies what - exception region number NOTE insns use to delimit this range. - The integer returned is uniquely identifies this exception range - within an internal table. */ - -int new_eh_region_entry PROTO((int)); - /* Add new handler information to an exception range. The first parameter specifies the range number (returned from new_eh_entry()). The second parameter specifies the handler. By default the handler is inserted at @@ -265,8 +260,19 @@ struct handler_info *get_new_handler PROTO((rtx, void *)); /* Make a duplicate of an exception region by copying all the handlers for an exception region. Return the new handler index. */ -int duplicate_handlers PROTO((int, int)); +int duplicate_eh_handlers PROTO((int, int, rtx (*)(rtx))); + +/* map symbol refs for rethrow */ + +rtx rethrow_symbol_map PROTO((rtx, rtx (*)(rtx))); + +/* Is the rethrow label for a region used? */ + +int rethrow_used PROTO((int)); + +/* Return the region number a this is the rethrow label for. */ +int eh_region_from_symbol PROTO((rtx)); /* Get a pointer to the first handler in an exception region's list. */ |