https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58796

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #12 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #4)
> However with that patch the caught pointer is not null, so it's not right.

For a pointer, you just need to set thrown_ptr to null.

For a pointer to member it's trickier, since they are thrown by reference, and
we end up returning a pointer to the exception object.  I suppose that since
nullptr has no actual value we can feel free to clobber the "value" of the
exception object before returning.

For a pointer to member function that's still problematic because the exception
object for 'throw nullptr' is currently one word, and a pointer to member
function is two.  So I suppose we will need to allocate two words for 'throw
nullptr'.  But clang doesn't do that; do they actually handle catching nullptr
as a pointer to member function?

Reply via email to