[cfe-commits] [libcxxabi] r137118 - /libcxxabi/trunk/src/cxa_exception.cpp

John McCall rjmccall at apple.com
Tue Aug 9 17:24:26 PDT 2011


On Aug 9, 2011, at 5:11 PM, Howard Hinnant wrote:
> On Aug 9, 2011, at 1:52 PM, John McCall wrote:
>> On Aug 9, 2011, at 8:09 AM, Marshall Clow wrote:
>>> +static const uint64_t kOurDependentExceptionClass = 0x434C4E47432B2B01; // CLNGC++\1
>> 
>> Ugh.  I would prefer to avoid Sebastian's dependent exception stuff.
> 
> It is coming.  I'll get it in.
> 
>> Is it
>> really unreasonable to say that std::rethrow_exception can only rethrow
>> a non-foreign exception?
> 
> I don't know the answer to this one.  I think we should try to keep the functionality of Apple's current abi, but deciphering exactly what that is is a non-trivial task.

Apple's current ABI does not implement std::exception_ptr, nor does it try to support any of the "dependent" exception stuff.

As far as I understand it, Sebastian introduced dependent (i.e. wrapped) exceptions in order to support capturing and rethrowing an arbitrary, potentially foreign exception via std::exception_ptr.  That's the only thing I can see that warrants the added complexity.  If we throw out that requirement, then we always have a reliable reference count we can use on exception_ptrs.

John.



More information about the cfe-commits mailing list