diff options
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/eh_personality.cc | 14 |
2 files changed, 11 insertions, 8 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 10e76175daa..d4227cd2030 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2001-08-31 Jason Merrill <jason_merrill@redhat.com> + + * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Simplify + leb128 handling. + 2001-08-28 Loren J. Rittle <ljrittle@acm.org> * include/Makefile.am: Use toplevel_srcdir to refer to src files diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc index 044212832a6..d070ced8101 100644 --- a/libstdc++-v3/libsupc++/eh_personality.cc +++ b/libstdc++-v3/libsupc++/eh_personality.cc @@ -84,7 +84,7 @@ parse_lsda_header (_Unwind_Context *context, const unsigned char *p, } static const std::type_info * -get_ttype_entry (lsda_header_info *info, long i) +get_ttype_entry (lsda_header_info *info, _Unwind_Word i) { _Unwind_Ptr ptr; @@ -97,14 +97,14 @@ get_ttype_entry (lsda_header_info *info, long i) static bool check_exception_spec (lsda_header_info *info, const std::type_info *throw_type, - long filter_value) + _Unwind_Sword filter_value) { const unsigned char *e = info->TType - filter_value - 1; while (1) { const std::type_info *catch_type; - _Unwind_Ptr tmp; + _Unwind_Word tmp; void *dummy; e = read_uleb128 (e, &tmp); @@ -262,7 +262,7 @@ PERSONALITY_FUNCTION (int version, { // Otherwise we have a catch handler or exception specification. - signed long ar_filter, ar_disp; + _Unwind_Sword ar_filter, ar_disp; const std::type_info *throw_type, *catch_type; bool saw_cleanup = false; bool saw_handler = false; @@ -279,11 +279,9 @@ PERSONALITY_FUNCTION (int version, while (1) { - _Unwind_Ptr tmp; - p = action_record; - p = read_sleb128 (p, &tmp); ar_filter = tmp; - read_sleb128 (p, &tmp); ar_disp = tmp; + p = read_sleb128 (p, &ar_filter); + read_sleb128 (p, &ar_disp); if (ar_filter == 0) { |