This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C++ PATCH] newabi runtime
- To: jason at cygnus dot com
- Subject: Re: [C++ PATCH] newabi runtime
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Thu, 06 Apr 2000 08:43:01 -0700
- Cc: nathan at codesourcery dot com, gcc-patches at gcc dot gnu dot org
- Organization: CodeSourcery, LLC
- References: <38EC7A6E.F289F5EF@codesourcery.com><u9d7o3waor.fsf@yorick.cygnus.com>
>>>>> "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