[LLVMdev] Darwin vs exceptions

Dale Johannesen dalej at apple.com
Wed Dec 12 16:06:19 PST 2007


On Dec 12, 2007, at 3:05 PM, Dale Johannesen wrote:
> On Dec 12, 2007, at 11:01 AM, Duncan Sands wrote:
>
>> Hi Dale,
>> Index: gcc-4.2.llvm/gcc/except.c
>> ===================================================================
>> --- gcc-4.2.llvm.orig/gcc/except.c	2007-12-12 20:55:30.000000000  
>> +0100
>> +++ gcc-4.2.llvm/gcc/except.c	2007-12-12 20:56:19.000000000 +0100
>> @@ -4053,9 +4053,9 @@
>> {
>>  /* The default c++ routines aren't actually c++ specific, so use  
>> those.  */
>>  /* LLVM local begin */
>> -  llvm_unwind_resume_libfunc = llvm_init_one_libfunc  
>> ( USING_SJLJ_EXCEPTIONS ?
>> -                                                        
>> "_Unwind_SjLj_Resume"
>> -                                                       :  
>> "_Unwind_Resume");
>> +  llvm_unwind_resume_libfunc =
>> +    llvm_init_one_libfunc(USING_SJLJ_EXCEPTIONS ?
>> +                          "_Unwind_SjLj_Resume" :  
>> "_Unwind_Resume_or_Rethrow");
>>  /* LLVM local end */
>> }
>
> Seems unlikely, but I'll try it.

This works!  and from the source it is reasonable that it should work.
Well done, I never thought of finding another hook into the unwinder,  
was
trying to duplicate gcc's behavior, which is hard.   Thanks very much.





More information about the llvm-dev mailing list