This is the mail archive of the
mailing list for the GCC project.
Re: [3.3] Followup to C++ forced unwinding
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org, ncm at cantrip dot org, drepper at redhat dot com
- Date: 30 Apr 2003 20:39:38 -0700
- Subject: Re: [3.3] Followup to C++ forced unwinding
- Organization: CodeSourcery, LLC
- References: <20030430175335.GA18958@twiddle.net> <firstname.lastname@example.org> <20030430210342.GB697@redhat.com> <email@example.com> <firstname.lastname@example.org> <email@example.com> <firstname.lastname@example.org>
On Wed, 2003-04-30 at 19:24, Jason Merrill wrote:
> On 30 Apr 2003 17:29:20 -0700, Mark Mitchell <email@example.com> wrote:
> > If it is really true that we cannot enter "catch(...)" blocks for some
> > reason (which I do not yet believe, despite Ulrich's usual inimitable
> > expression of confidence), then running into a "catch(...)" block while
> > unwinding should result in a call to std::terminate.
> This makes sense to me.
> Actually, I have an idea for how to DTRT here: give terminate() as the
> destructor for the exception object in the forced unwind case. So if the
> catch(...) block rethrows, all is good, but if we exit the catch block some
> other way, we try to clean up the exception, which calls terminate.
This is a good extension to my suggestion; it allows strictly more
non-controversial cases to work as we all think they should while
allowing us to debate the controversial cases as time permits.
Mark Mitchell <firstname.lastname@example.org>