Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cxx-abi-dev] Flaws in spec for __cxa_begin_catch


  • To: Cary Coutant <cary@xxxxxxxxxx>
  • Subject: Re: [cxx-abi-dev] Flaws in spec for __cxa_begin_catch
  • From: Mark Mitchell <mark@xxxxxxxxxxxxxxxx>
  • Date: Thu, 18 Nov 2004 22:53:16 -0800

Cary Coutant wrote:

It seems to me that the ABI spec for __cxa_begin_catch() may have been OK after all, but we really needed another interface to get the adjusted pointer prior to calling __cxa_begin_catch(). In the Bugzilla discussion, Richard suggests "__cxa_begin_catch_part1" and "__cxa_begin_catch_part2", but I'd suggest leaving __cxa_begin_catch() as specified (with a void return), and adding a new interface

   void *__cxa_get_exception_ptr(void *exceptionObject);

The generated code can call this interface, run the copy constructor, and then call __cxa_begin_catch().

Perhaps an improvement on this would be to have __cxa_begin_catch() also return the adjusted pointer, so that we can avoid the extra call in cases where we don't have a copy constructor.

That seems like a good strategy. Would you care to submit a patch to the ABI spec?

Thanks,

--
Mark Mitchell
CodeSourcery, LLC
mark@xxxxxxxxxxxxxxxx
(916) 791-8304