aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/exception.cc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@cygnus.com>1998-06-25 14:11:54 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>1998-06-25 14:11:54 +0000
commit9c606f693ddca43b89097388cfdeeffaead030df (patch)
treebb987eafff1d4601db541283435b2bfed1629fa6 /gcc/cp/exception.cc
parent296b815223f2a71b7a377af93ea7a599c26f9d18 (diff)
downloadgcc-9c606f693ddca43b89097388cfdeeffaead030df.zip
gcc-9c606f693ddca43b89097388cfdeeffaead030df.tar.gz
gcc-9c606f693ddca43b89097388cfdeeffaead030df.tar.bz2
[multiple changes]
Thu Jun 25 16:59:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h. (find_all_handler_type_matches): Add function prototype. * eh-common.h (CATCH_ALL_TYPE): Definition added. * except.c (find_all_handler_type_matches): Add function to find all runtime type info in the exception table. (output_exception_table_entry): Special case for CATCH_ALL_TYPE. 1998-06-25 Andrew MacLeod <amacleod@cygnus.com> * cp-tree.h (mark_all_runtime_matches): Add function prototype. * except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED flag for all function decls which are in the exception table. * exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match. * decl2.c (finish_file): Call mark_all_runtime_matches to make sure code is emitted for any referenced rtti function. From-SVN: r20718
Diffstat (limited to 'gcc/cp/exception.cc')
-rw-r--r--gcc/cp/exception.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/exception.cc b/gcc/cp/exception.cc
index bb36a66..4c10404 100644
--- a/gcc/cp/exception.cc
+++ b/gcc/cp/exception.cc
@@ -160,6 +160,9 @@ __cplus_type_matcher (cp_eh_info *info, rtimetype match_info,
if (exception_table->lang.language != EH_LANG_C_plus_plus)
return NULL;
+ if (match_info == CATCH_ALL_TYPE)
+ return info->value;
+
/* we don't worry about version info yet, there is only one version! */
void *match_type = match_info ();