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?