This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author gut
Recipients brunoalr, gut, pitrou, vstinner
Date 2017-08-16.12:47:56
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1502887677.3.0.637594444001.issue30910@psf.upfronthosting.co.za>
In-reply-to
Content
-fexceptions documentation:
https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fexceptions

Highlight to: "you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in C++"

And this issue was detected when cpython is used like the following:
.---------------------.
|     A C++ code      | <= Designed to be the catcher
:---------------------:
|       cpython       | <= Should only pass exception up
:---------------------:
| called C++ function | <= Raises a C++ exception
'---------------------'

This is already working for X64, but not on PPC64LE (and possibly ARM64 and other architectures as well).

For some reason the C++ unwinder can unwind C frames without special unwind information on X64. Maybe it can assume frame information on this architectures and it succeeds, but that's just pure luck in my opinion.

ps: this patch is not v2.7 specific. It should be applied globally to other versions as well. It was merely reported to v2.7 as it was the python version that our c++ library was using. Maybe it'll be easier to backport this patch to other versions once it's in.
History
Date User Action Args
2017-08-16 12:47:57gutsetrecipients: + gut, pitrou, vstinner, brunoalr
2017-08-16 12:47:57gutsetmessageid: <1502887677.3.0.637594444001.issue30910@psf.upfronthosting.co.za>
2017-08-16 12:47:57gutlinkissue30910 messages
2017-08-16 12:47:56gutcreate