diff options
author | Carlos O'Donell <carlos@codesourcery.com> | 2006-12-04 17:25:36 +0000 |
---|---|---|
committer | Carlos O'Donell <carlos@gcc.gnu.org> | 2006-12-04 17:25:36 +0000 |
commit | 7f575bf6d48e70be2184a4f7d19dd7c78c6f5113 (patch) | |
tree | 9d8112b2c029ac05a89b08e2bcee3599ff6350c3 /gcc | |
parent | 32ace6e2a6f1d2b9307df202722cc092d4ce513d (diff) | |
download | gcc-7f575bf6d48e70be2184a4f7d19dd7c78c6f5113.zip gcc-7f575bf6d48e70be2184a4f7d19dd7c78c6f5113.tar.gz gcc-7f575bf6d48e70be2184a4f7d19dd7c78c6f5113.tar.bz2 |
unwind-arm.c: Adjust __cxa_type_match declaration.
gcc/
2006-12-04 Carlos O'Donell <carlos@codesourcery.com>
* config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
(__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
From-SVN: r119498
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/unwind-arm.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e51deb..a36a042 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-12-04 Carlos O'Donell <carlos@codesourcery.com> + + * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration. + (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match. + 2006-12-04 Andrew MacLeod <amacleod@redhat.com> * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges. diff --git a/gcc/config/arm/unwind-arm.c b/gcc/config/arm/unwind-arm.c index 6b7e2dd..9b7229e 100644 --- a/gcc/config/arm/unwind-arm.c +++ b/gcc/config/arm/unwind-arm.c @@ -41,6 +41,7 @@ void __attribute__((weak)) __cxa_call_unexpected(_Unwind_Control_Block *ucbp); bool __attribute__((weak)) __cxa_begin_cleanup(_Unwind_Control_Block *ucbp); bool __attribute__((weak)) __cxa_type_match(_Unwind_Control_Block *ucbp, const type_info *rttip, + bool is_reference, void **matched_object); _Unwind_Ptr __attribute__((weak)) @@ -847,6 +848,7 @@ __gnu_unwind_pr_common (_Unwind_State state, { /* Check for a barrier. */ _uw rtti; + bool is_reference = (data[0] & uint32_highbit) != 0; void *matched; /* Check for no-throw areas. */ @@ -860,6 +862,7 @@ __gnu_unwind_pr_common (_Unwind_State state, /* Match a catch specification. */ rtti = _Unwind_decode_target2 ((_uw) &data[1]); if (!__cxa_type_match (ucbp, (type_info *) rtti, + is_reference, &matched)) matched = (void *)0; } @@ -907,7 +910,7 @@ __gnu_unwind_pr_common (_Unwind_State state, { matched = (void *)(ucbp + 1); rtti = _Unwind_decode_target2 ((_uw) &data[i + 1]); - if (__cxa_type_match (ucbp, (type_info *) rtti, + if (__cxa_type_match (ucbp, (type_info *) rtti, 0, &matched)) break; } |