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

Issue 97603002: PNaCl SJLJ EH: Fix handling of dependent exceptions (Closed)

Created:
7 years ago by Mark Seaborn
Modified:
7 years ago
Reviewers:
Derek Schuff
CC:
native-client-reviews_googlegroups.com
Base URL:
http://git.chromium.org/native_client/pnacl-gcc.git@pnacl
Visibility:
Public.

Description

PNaCl SJLJ EH: Fix handling of dependent exceptions Dereferencing xh->exceptionType isn't valid for dependent exceptions (those thrown with std::rethrow_exception(), added in C++11), because xh might point to inside a __cxa_dependent_exception, which, in libsupc++, shares some but not all of the layout of __cxa_exception. We must get exceptionType from __get_exception_header_from_obj(__get_object_from_ue(ue_header)) rather than from __get_exception_header_from_ue(ue_header). That is because __get_object_from_ue() checks for dependent exceptions and returns the pointer associated with the original __cxa_exception. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696 TEST=run_eh_throw_tests_sjlj_test (with extra test added) Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-gcc.git;a=commit;h=5744291

Patch Set 1 #

Patch Set 2 : Retry upload #

Patch Set 3 : Retry upload #

Total comments: 2

Patch Set 4 : Add comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+6 lines, -3 lines) Patch
M libstdc++-v3/libsupc++/eh_pnacl.cc View 1 2 3 2 chunks +6 lines, -3 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
Mark Seaborn
Test to be added by: https://codereview.chromium.org/97593002/
7 years ago (2013-12-02 14:39:32 UTC) #1
Derek Schuff
lgtm https://codereview.chromium.org/97603002/diff/30001/libstdc++-v3/libsupc++/eh_pnacl.cc File libstdc++-v3/libsupc++/eh_pnacl.cc (right): https://codereview.chromium.org/97603002/diff/30001/libstdc++-v3/libsupc++/eh_pnacl.cc#newcode244 libstdc++-v3/libsupc++/eh_pnacl.cc:244: __get_exception_header_from_obj (obj)->exceptionType; add a comment here mentioning why ...
7 years ago (2013-12-02 18:24:09 UTC) #2
Mark Seaborn
https://codereview.chromium.org/97603002/diff/30001/libstdc++-v3/libsupc++/eh_pnacl.cc File libstdc++-v3/libsupc++/eh_pnacl.cc (right): https://codereview.chromium.org/97603002/diff/30001/libstdc++-v3/libsupc++/eh_pnacl.cc#newcode244 libstdc++-v3/libsupc++/eh_pnacl.cc:244: __get_exception_header_from_obj (obj)->exceptionType; On 2013/12/02 18:24:09, Derek Schuff wrote: > ...
7 years ago (2013-12-02 18:49:14 UTC) #3
Mark Seaborn
7 years ago (2013-12-02 19:03:18 UTC) #4
Message was sent while issue was closed.
Committed patchset #4 manually as r5744291 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698