Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1094)

Unified Diff: libstdc++-v3/libsupc++/eh_pnacl.cc

Issue 97603002: PNaCl SJLJ EH: Fix handling of dependent exceptions (Closed) Base URL: http://git.chromium.org/native_client/pnacl-gcc.git@pnacl
Patch Set: Retry upload Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: libstdc++-v3/libsupc++/eh_pnacl.cc
diff --git a/libstdc++-v3/libsupc++/eh_pnacl.cc b/libstdc++-v3/libsupc++/eh_pnacl.cc
index 3cb56aeba8d303c4b9e038c3d1df4a2b9abef1e2..d4bc693dbde9b7f27d02531f3bc48dca3e654ffd 100644
--- a/libstdc++-v3/libsupc++/eh_pnacl.cc
+++ b/libstdc++-v3/libsupc++/eh_pnacl.cc
@@ -240,10 +240,11 @@ handle_exception (struct _Unwind_Exception *ue_header, bool check_for_catch)
__cxa_exception *xh = __get_exception_header_from_ue (ue_header);
void *obj = __get_object_from_ue (ue_header);
+ const std::type_info *throw_type =
+ __get_exception_header_from_obj (obj)->exceptionType;
Derek Schuff 2013/12/02 18:24:09 add a comment here mentioning why this has to be d
Mark Seaborn 2013/12/02 18:49:14 Done.
struct exception_frame *frame;
int32_t clause_id;
- if (find_match (xh->exceptionType, &obj, __pnacl_eh_stack,
- &frame, &clause_id))
+ if (find_match (throw_type, &obj, __pnacl_eh_stack, &frame, &clause_id))
{
// Check that there is a non-cleanup handler for the exception.
// If not, we should abort before running cleanup handlers
@@ -260,7 +261,7 @@ handle_exception (struct _Unwind_Exception *ue_header, bool check_for_catch)
// called; whether or not the stack is unwound before this call
// to std::terminate() is implementation-defined".
if (check_for_catch && clause_id == 0 &&
- !is_exception_caught (xh->exceptionType, obj, frame->next))
+ !is_exception_caught (throw_type, obj, frame->next))
return;
__pnacl_eh_stack = frame->next;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698