This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [C++ PATCH] newabi runtime


>>>>> "Jason" == Jason Merrill <jason@cygnus.com> writes:

    Jason> You left out exception handling for __cxa_vec_dtor; if
    Jason> we're not already in EH cleanup, one of the destructors can
    Jason> throw and we should keep destroying the array.  If we are,
    Jason> we call terminate.

Right.  Nathan, I thought I'd mentioned this -- but I guess I only
pointed it out in your draft patch with respect to constructors.  My
mistake.

    Jason> This seems like a job for uncaught_exception.

I'm not sure quite what Jason means, so I'll make something up.

It is true that `uncaught_exception' has to return true during the
destruction of the remaining elements of the array.  I'm not sure if
the ABI needs to specify how that is accomplished; I don't think so.
(We're not going to allow linking part of one vendors standard library
with part of anothers, are we?)  However, that implies that
`uncaught_exception' cannot be inlined.

Nathan, please fix the destructor issue Jason mentioned, and see if
you make uncaught_exception return true at the right time.  I bet that
clearing `CP_EH_INFO->caught' while in the `catch' clause will do the
trick, but you should confirm that.

Thanks to both of you,

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]