diff options
author | Andrew MacLeod <amacleod@cygnus.com> | 1998-06-23 10:51:47 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 1998-06-23 10:51:47 +0000 |
commit | 48b24bcdfac371ad5b71ec1bd0aa9d4f90614f9a (patch) | |
tree | af21d0438b598699c10f5dc4ab0887e3c57866b6 /gcc/libgcc2.c | |
parent | daf21dfd8018376476559ef65a4ffdf203839cc1 (diff) | |
download | gcc-48b24bcdfac371ad5b71ec1bd0aa9d4f90614f9a.zip gcc-48b24bcdfac371ad5b71ec1bd0aa9d4f90614f9a.tar.gz gcc-48b24bcdfac371ad5b71ec1bd0aa9d4f90614f9a.tar.bz2 |
libgcc2.c (__get_eh_table_version, [...]): New functions to return exception descriptor information.
Tue Jun 23 13:38:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* libgcc2.c (__get_eh_table_version, __get_eh_table_language): New
functions to return exception descriptor information.
(find_exception_handler): Pass match_info field to runtime matcher,
not a descriptor table entry.
* exception.cc (__cplus_type_matcher): Get a match_info pointer
instead of an exception table entry as a parameter.
From-SVN: r20673
Diffstat (limited to 'gcc/libgcc2.c')
-rw-r--r-- | gcc/libgcc2.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index 4e17faf..30fa61a 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -3358,6 +3358,23 @@ EH_TABLE_LOOKUP #ifdef DWARF2_UNWIND_INFO + +/* Return the table version of an exception descriptor */ + +short +__get_eh_table_version (exception_descriptor *table) +{ + return table->lang.version; +} + +/* Return the originating table language of an exception descriptor */ + +short +__get_eh_table_language (exception_descriptor *table) +{ + return table->lang.language; +} + /* This routine takes a PC and a pointer to the exception region TABLE for its translation unit, and returns the address of the exception handler associated with the closest exception table handler entry associated @@ -3424,7 +3441,7 @@ find_exception_handler (void *pc, exception_descriptor *table, void *eh_info) /* match info but no matcher is NOT a match */ if (matcher) { - ret = (*matcher)(eh_info, &tab[pos], table); + ret = (*matcher)(eh_info, tab[pos].match_info, table); if (ret) return tab[pos].exception_handler; } |