Displaying 8 results from an estimated 8 matches for "thunk_item_m_delet".
Did you mean:
thunk_item_m_delete
2012 Mar 23
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...you're right, that I shouldn't need any try/catch at all.
>
> When I put tracer print statements in my class's destructors, I can see that they are called only if I explicitly call them via JIT'd code that calls the relevant thunk, e.g.:
>
> extern "C" void thunk_item_M_delete( void *v_that ) {
> item *const that = static_cast<item*>( v_that );
> that->~item();
> }
>
> Given that I have to call the thunks to run the d'tors manually in the normal control-flow case, it would seem that I would also have to call them in the exception-thro...
2012 Mar 23
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
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 );
> that->~item();
> } catch (...) {
> that->~item();
> }
> }
No I wouldn't since destructors should never throw exceptions:
http://www.parashift....
2012 Mar 23
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...t would seem that if you're right, that I shouldn't need any try/catch at all.
When I put tracer print statements in my class's destructors, I can see that they are called only if I explicitly call them via JIT'd code that calls the relevant thunk, e.g.:
extern "C" void thunk_item_M_delete( void *v_that ) {
item *const that = static_cast<item*>( v_that );
that->~item();
}
Given that I have to call the thunks to run the d'tors manually in the normal control-flow case, it would seem that I would also have to call them in the exception-thrown control-flow case -- r...
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 );
>> that->~item();
>> } catch (...) {
>> that->~item();
>> }
>> }
>
> No I wouldn't since destructors should never throw e...
2012 Mar 23
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
On Mar 22, 2012, at 11:40 AM, Paul J. Lucas <paul at lucasmail.org> wrote:
> On Mar 22, 2012, at 12:28 AM, Bill Wendling wrote:
>
>> On Mar 20, 2012, at 7:38 PM, Paul J. Lucas wrote:
>>
>>> I've read the docs on LLVM exceptions, but I don't see any examples. A little help?
>>
>> I don't think this has anything to do with LLVM's
2012 Apr 08
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...ge, align 8
> store i8 1, i8* %exception_caught_flag, align 1
> br label %exit
>
> dtor: ; preds = %unwind2, %dtor3
> %6 = phi %0 [ %9, %unwind2 ], [ %10, %dtor3 ]
> %7 = phi i8 [ 1, %unwind2 ], [ %11, %dtor3 ]
> call void @thunk_item_M_delete(void* %0)
> br label %exit
>
> normal1: ; preds = %normal
> %8 = bitcast %singleton_iterator* %x_it to void*
> invoke void @thunk_singleton_iterator_M_new(void* %8, void* %0)
> to label %normal4 unwind label %unwind5
>...
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
...tore i8 1, i8* %exception_caught_flag, align 1
>> br label %exit
>>
>> dtor: ; preds = %unwind2, %dtor3
>> %6 = phi %0 [ %9, %unwind2 ], [ %10, %dtor3 ]
>> %7 = phi i8 [ 1, %unwind2 ], [ %11, %dtor3 ]
>> call void @thunk_item_M_delete(void* %0)
>> br label %exit
>>
>> normal1: ; preds = %normal
>> %8 = bitcast %singleton_iterator* %x_it to void*
>> invoke void @thunk_singleton_iterator_M_new(void* %8, void* %0)
>> to label %normal4 unwind...