aboutsummaryrefslogtreecommitdiff
path: root/gcc/eh-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/eh-common.h')
-rw-r--r--gcc/eh-common.h162
1 files changed, 0 insertions, 162 deletions
diff --git a/gcc/eh-common.h b/gcc/eh-common.h
deleted file mode 100644
index dffe682..0000000
--- a/gcc/eh-common.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* EH stuff
- Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-/* This file contains the structures required for the language
- independent exception handling model. Both the static compiler and
- the runtime library share this file. */
-
-/* The runtime flag flag_new_exceptions is used to determine whether the
- compiler supports the new runtime typechecking mechanism or not. Under
- the new model, runtime info is contained in the exception table, and
- the __throw() library routine determines which handler to call based
- on the results of a call to a matching function provided by the expcetion
- thrower. Otherwise the old scheme of calling any handler which matches
- an exception range is used, and the handler is responsible for all
- checking of runtime conditions. If the handler wasn't suppose to
- get the exception, it performs a re-throw. */
-
-
-/* The handler_label field MUST be the first field in this structure. The
- __throw() library routine expects uses __eh_stub() from except.c, which
- simply dereferences the context pointer to get the handler.
- The routine get_dynamic_handler_chain() also has a dependancy on
- the location of 'dynamic_handler_chain'. If its location is changed,
- that routine must be modified as well. */
-#ifndef EH_ALLOC_SIZE
-/* 192 bytes means the entire eh_context plus malloc overhead fits in 256
- bytes (assuming 8 byte pointers). 192 bytes gives an eh_info and object
- size limit of 96 bytes. This should be sufficient for throwing bad_alloc. */
-#define EH_ALLOC_SIZE 192
-#endif
-#ifndef EH_ALLOC_ALIGN
-/* We can't use BIGGEST_ALIGNMENT, because on some systems, that expands to
- a check on a compile time switch like
- 'target_flags & MASK_ALIGN_DOUBLE ? 64 : 32'. There's no macro for
- 'largest alignment for any code this compiler can build for', which is
- really what is needed. */
-#define EH_ALLOC_ALIGN 16
-#endif
-
-struct eh_context
-{
- void *handler_label;
- void **dynamic_handler_chain;
- /* This is language dependent part of the eh context. */
- void *info;
- /* This is used to remember where we threw for re-throws */
- void *table_index; /* address of exception table entry to rethrow from */
- /* emergency fallback space, if malloc fails during handling */
- char alloc_buffer[EH_ALLOC_SIZE]
- __attribute__((__aligned__(EH_ALLOC_ALIGN)));
- unsigned alloc_mask;
-};
-
-#ifndef EH_TABLE_LOOKUP
-
-typedef struct old_exception_table
-{
- void *start_region;
- void *end_region;
- void *exception_handler;
-} old_exception_table;
-
-typedef struct exception_table
-{
- void *start_region;
- void *end_region;
- void *exception_handler;
- void *match_info; /* runtime type info */
-} exception_table;
-
-
-/* The language identifying portion of an exception table */
-
-typedef struct exception_lang_info
-{
- short language;
- short version;
-} exception_lang_info;
-
-/* This value in the first field of the exception descriptor
- identifies the descriptor as the new model format. This value would never
- be present in this location under the old model */
-
-#define NEW_EH_RUNTIME ((void *) -2)
-
-/* Each function has an exception_descriptor which contains the
- language info, and a table of exception ranges and handlers */
-
-typedef struct exception_descriptor
-{
- void *runtime_id_field;
- exception_lang_info lang;
- exception_table table[1];
-} exception_descriptor;
-
-struct __eh_info; /* forward declaration */
-
-/* A pointer to a matching function is initialized at runtime by the
- specific language if run-time exceptions are supported.
- The function takes 3 parameters
- 1 - runtime exception that has been thrown info. (__eh_info *)
- 2 - Match info pointer from the region being considered (void *)
- 3 - exception table region is in (exception descriptor *)
-*/
-
-typedef void * (*__eh_matcher) PARAMS ((struct __eh_info *, void *,
- struct exception_descriptor *));
-
-/* This value is to be checked as a 'match all' case in the runtime field. */
-
-#define CATCH_ALL_TYPE ((void *) -1)
-
-/* This is the runtime exception information. This forms the minimum required
- information for an exception info pointer in an eh_context structure. */
-
-
-typedef struct __eh_info
-{
- __eh_matcher match_function;
- short language;
- short version;
-} __eh_info;
-
-/* Convienient language codes for ID the originating language. Similar
- to the codes in dwarf2.h. */
-
-enum exception_source_language
- {
- EH_LANG_C89 = 0x0001,
- EH_LANG_C = 0x0002,
- EH_LANG_Ada83 = 0x0003,
- EH_LANG_C_plus_plus = 0x0004,
- EH_LANG_Cobol74 = 0x0005,
- EH_LANG_Cobol85 = 0x0006,
- EH_LANG_Fortran77 = 0x0007,
- EH_LANG_Fortran90 = 0x0008,
- EH_LANG_Pascal83 = 0x0009,
- EH_LANG_Modula2 = 0x000a,
- EH_LANG_Java = 0x000b,
- EH_LANG_Mips_Assembler = 0x8001
- };
-
-#endif /* EH_TABLE_LOOKUP */
-
-