search for: createlandingpad

Displaying 4 results from an estimated 4 matches for "createlandingpad".

2012 Apr 09
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...9;insertvalue' instruction. The code it produces is more verbose, but after optimizations, code-gen typically doesn't produce a lot of code for these sequences. I copied that bit of code from ExceptionDemo.cpp (lines 1270-1290): > llvm::LandingPadInst *caughtResult = > builder.CreateLandingPad(ourCaughtResultType, > personality, > numExceptionsToCatch, > "landingPad"); > // ... > > builder.CreateStore(caughtResult, caughtResultStorage); Then on line 1255: > build...
2012 Apr 09
5
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
On Apr 8, 2012, at 8:47 AM, Paul J. Lucas wrote: > On Apr 8, 2012, at 4:20 AM, Bill Wendling wrote: > >> On Apr 4, 2012, at 9:32 PM, Paul J. Lucas 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
2012 Apr 05
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...tx, "dtor", fn ); > builder.SetInsertPoint( dtor_blk ); > builder.CreateCall( dtor, void_obj_ptr ); > builder.CreateBr( unwind_blks_.back() ); > > // Catch exception, if any. > builder.SetInsertPoint( unwind_blk ); > LandingPadInst *const lpad = builder.CreateLandingPad( > caught_result_type_, personality_fn_, 0 > ); > lpad->setCleanup( true ); > builder.CreateStore( lpad, caught_result_storage_ ); > builder.CreateStore( exception_thrown_state_, exception_caught_flag_ ); > builder.CreateBr( unwind_blks_.back() ); > > unw...
2012 Mar 23
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
On Mar 23, 2012, at 4:29 PM, Paul J. Lucas wrote: > On Mar 23, 2012, at 3:25 PM, Bill Wendling wrote: > >> Let's take your example. You will have code that looks like this: >> >> extern "C" void thunk_item_M_delete( void *v_that ) { >> item *that = 0; >> try { >> that = static_cast<item*>( v_that ); >>