diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-31 09:49:13 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-31 09:49:13 +0000 |
commit | a6398abe39206cc17ae1a67d3374c1482e15d07b (patch) | |
tree | 02c8c8bebc7f6cfaa8805ed08c15689b797b575c /libstdc++-v3 | |
parent | ac8b36b901ecf1301184713972b16dcd780cf34f (diff) | |
download | gcc-a6398abe39206cc17ae1a67d3374c1482e15d07b.tar.gz |
* unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
code here. Take _Unwind_{W,Sw}ord*.
(read_encoded_value_with_base): Use them.
* unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
words.
(extract_cie_info): Simplify read_?leb128 handling.
(execute_stack_op, execute_cfa_program): Likewise.
* unwind-dw2-fde.c (get_cie_encoding): Likewise.
* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Simplify
leb128 handling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45315 138bc75d-0d04-0410-961f-82ee72b054a4
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) { |