[LLVMdev] Why clang++ doesn't set 'noreturn' flag on declarations of __cxa_throw and _Unwind_Resume_or_Rethrow ?

Bill Wendling wendling at apple.com
Thu Jul 15 18:30:29 PDT 2010


On Jul 15, 2010, at 5:51 PM, John McCall wrote:

>> Also can _Unwind_Resume_or_Rethrow actually return? When I run some 
>> simple exception code in JIT I see that this function actually returns 
>> and then SEGVs.
> 
> I have no idea what system you're on, but _Unwind_Resume_or_Rethrow really
> isn't allowed to return.
> 
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.

-bw





More information about the llvm-dev mailing list