mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-02 05:40:26 +08:00
unwind-cxx.h (__cxa_exception): Change catchTemp type from void* to _Unwind_Ptr.
* libstdc++-v3/libsupc++/unwind-cxx.h (__cxa_exception): Change catchTemp type from void* to _Unwind_Ptr. * libstdc++-v3/libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Do not cast landing_pad or base_of_encoded_value to (void *). * libstdc++-v3/libsupc++/eh_throw.cc (__gxx_exception_cleanup): Accept _URC_NO_REASON as a valid reason code. From-SVN: r56352
This commit is contained in:
parent
9ef30f834e
commit
cb94b1559a
@ -1,3 +1,12 @@
|
||||
2002-08-15 Steve Ellcey <sje@cup.hp.com>
|
||||
|
||||
* libsupc++/unwind-cxx.h (__cxa_exception): Change catchTemp
|
||||
type from void* to _Unwind_Ptr.
|
||||
* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION):
|
||||
Do not cast landing_pad or base_of_encoded_value to (void *).
|
||||
* libsupc++/eh_throw.cc (__gxx_exception_cleanup):
|
||||
Accept _URC_NO_REASON as a valid reason code.
|
||||
|
||||
2002-08-14 Jonathan Wakely <jw@kayari.org>
|
||||
|
||||
* docs/html/22_locale/messages.html: Use HTML entities for
|
||||
|
@ -394,7 +394,7 @@ PERSONALITY_FUNCTION (int version,
|
||||
|
||||
// ??? Completely unknown what this field is supposed to be for.
|
||||
// ??? Need to cache TType encoding base for call_unexpected.
|
||||
xh->catchTemp = (void *) (_Unwind_Ptr) landing_pad;
|
||||
xh->catchTemp = landing_pad;
|
||||
}
|
||||
return _URC_HANDLER_FOUND;
|
||||
}
|
||||
@ -411,7 +411,7 @@ PERSONALITY_FUNCTION (int version,
|
||||
if (handler_switch_value < 0)
|
||||
{
|
||||
parse_lsda_header (context, xh->languageSpecificData, &info);
|
||||
xh->catchTemp = (void *) base_of_encoded_value (info.ttype_encoding,
|
||||
xh->catchTemp = base_of_encoded_value (info.ttype_encoding,
|
||||
context);
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,10 @@ __gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc)
|
||||
|
||||
// If we haven't been caught by a foreign handler, then this is
|
||||
// some sort of unwind error. In that case just die immediately.
|
||||
if (code != _URC_FOREIGN_EXCEPTION_CAUGHT)
|
||||
// _Unwind_DeleteException in the HP-UX IA64 libunwind library
|
||||
// returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT
|
||||
// like the GCC _Unwind_DeleteException function does.
|
||||
if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
|
||||
__terminate (header->terminateHandler);
|
||||
|
||||
if (header->exceptionDestructor)
|
||||
|
@ -70,7 +70,7 @@ struct __cxa_exception
|
||||
int handlerSwitchValue;
|
||||
const unsigned char *actionRecord;
|
||||
const unsigned char *languageSpecificData;
|
||||
void *catchTemp;
|
||||
_Unwind_Ptr catchTemp;
|
||||
void *adjustedPtr;
|
||||
|
||||
// The generic exception header. Must be last.
|
||||
|
Loading…
x
Reference in New Issue
Block a user