[LLVMdev] Why clang++ doesn't set 'noreturn' flag on declarations of __cxa_throw and _Unwind_Resume_or_Rethrow ?
John McCall
rjmccall at apple.com
Fri Jul 16 16:09:43 PDT 2010
On Jul 16, 2010, at 4:01 PM, Bill Wendling wrote:
> On Jul 15, 2010, at 6:52 PM, Yuri wrote:
>
>> On 07/15/2010 18:30, Bill Wendling wrote:
>>> It's not. But if the unwind library can't handle something, then the _Unwind_Resume_or_Rethrow could fall out of the function (it would assert in debug mode). Darwin's implementation of _URoR in libunwind does this.
>>>
>> Isn't unwind library supposed to call terminate() every time it can't handle something?
>>
> I don't see anything specifying that it should call terminate() in the exception ABI document:
>
> http://www.codesourcery.com/public/cxx-abi/abi-eh.html
If the unwind state is broken, we're well into who-really-cares-what-happens state. I
would abstractly prefer if URR just called abort() because it doesn't disguise the problem,
but whatever.
John.
More information about the llvm-dev
mailing list