Displaying 3 results from an estimated 3 matches for "dtorn".
Did you mean:
doorn
2012 Apr 08
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...erator_M_new(void* %8, void* %0)
> to label %normal4 unwind label %unwind5
>
> ; ...
I generate the "exit", "return", and "unwind_resume" blocks first followed by a sequence of "normal", "unwind", and "dtor" blocks. A dtorN block calls dtorN-1 unless N=0 in which case it calls exit instead.
Now I think my last part of the puzzle is the personality function. Running on a *nix system (Mac OS X), my code has:
> Function* getPersonalityFunction( Module *m ) {
> if ( Function *const f = m->getFunction( "...
2012 Apr 08
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
On Apr 4, 2012, at 9:32 PM, Paul J. Lucas wrote:
> On Mar 23, 2012, at 4:46 PM, Bill Wendling wrote:
[...]
> This all seems to work just fine. I can throw a C++ exception either in a C++ object's constructor or in an ordinary member function and the stack unwinds correctly (the object's destructors are called) and the exception is propagated back up the C++ code that called the
2012 Apr 09
5
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
..., void* %0)
>> to label %normal4 unwind label %unwind5
>>
>> ; ...
>
> I generate the "exit", "return", and "unwind_resume" blocks first followed by a sequence of "normal", "unwind", and "dtor" blocks. A dtorN block calls dtorN-1 unless N=0 in which case it calls exit instead.
>
> Now I think my last part of the puzzle is the personality function. Running on a *nix system (Mac OS X), my code has:
>
>> Function* getPersonalityFunction( Module *m ) {
>> if ( Function *const f = m-&...