Commit cb94b155 by Steve Ellcey Committed by Steve Ellcey

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
parent 9ef30f83
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> 2002-08-14 Jonathan Wakely <jw@kayari.org>
* docs/html/22_locale/messages.html: Use HTML entities for * docs/html/22_locale/messages.html: Use HTML entities for
......
...@@ -394,7 +394,7 @@ PERSONALITY_FUNCTION (int version, ...@@ -394,7 +394,7 @@ PERSONALITY_FUNCTION (int version,
// ??? Completely unknown what this field is supposed to be for. // ??? Completely unknown what this field is supposed to be for.
// ??? Need to cache TType encoding base for call_unexpected. // ??? Need to cache TType encoding base for call_unexpected.
xh->catchTemp = (void *) (_Unwind_Ptr) landing_pad; xh->catchTemp = landing_pad;
} }
return _URC_HANDLER_FOUND; return _URC_HANDLER_FOUND;
} }
...@@ -411,7 +411,7 @@ PERSONALITY_FUNCTION (int version, ...@@ -411,7 +411,7 @@ PERSONALITY_FUNCTION (int version,
if (handler_switch_value < 0) if (handler_switch_value < 0)
{ {
parse_lsda_header (context, xh->languageSpecificData, &info); 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); context);
} }
......
...@@ -42,7 +42,10 @@ __gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc) ...@@ -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 // If we haven't been caught by a foreign handler, then this is
// some sort of unwind error. In that case just die immediately. // 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); __terminate (header->terminateHandler);
if (header->exceptionDestructor) if (header->exceptionDestructor)
......
...@@ -70,7 +70,7 @@ struct __cxa_exception ...@@ -70,7 +70,7 @@ struct __cxa_exception
int handlerSwitchValue; int handlerSwitchValue;
const unsigned char *actionRecord; const unsigned char *actionRecord;
const unsigned char *languageSpecificData; const unsigned char *languageSpecificData;
void *catchTemp; _Unwind_Ptr catchTemp;
void *adjustedPtr; void *adjustedPtr;
// The generic exception header. Must be last. // The generic exception header. Must be last.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment