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 );
>>