search for: thunk_item_m_new_i

Displaying 6 results from an estimated 6 matches for "thunk_item_m_new_i".

2012 Mar 23
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...x i8] } define void @program(void* %result) { entry: ; alloc raw space for x on the stack %x = alloca %item, align 8 ; alloc raw space for y on the stack %y = alloca %item, align 8 ; call item::item(1) constructor for x as new(%0) item(1); %0 = bitcast %item* %x to void* call void @thunk_item_M_new_i(void* %0, i32 1) ; call item::item(2) constructor for y as new(%1) item(2); %1 = bitcast %item* %y to void* call void @thunk_item_M_new_i(void* %1, i32 2) ; Do something with x & y via another thunk_ function that MIGHT throw an exception. ; If an exception is thrown, the code below...
2012 Apr 08
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...%item, align 8 > %exception_caught_flag = alloca i8, align 1 > store i8 0, i8* %exception_caught_flag, align 1 > %caught_result_storage = alloca %0, align 8 > store %0 zeroinitializer, %0* %caught_result_storage, align 8 > %0 = bitcast %item* %x to void* > invoke void @thunk_item_M_new_i(void* %0, i32 1) > to label %normal unwind label %unwind > > exit: ; preds = %unwind, %dtor > %1 = phi %0 [ %5, %unwind ], [ %6, %dtor ] > %2 = phi i8 [ 1, %unwind ], [ %7, %dtor ] > %3 = icmp eq i8 %2, 0 > br i1 %3...
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 Mar 23
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
On Mar 23, 2012, at 6:27 AM, Paul J. Lucas wrote: > On Mar 22, 2012, at 5:29 PM, Bill Wendling wrote: > >> On Mar 22, 2012, at 11:40 AM, Paul J. Lucas <paul at lucasmail.org> wrote: >> >>> Unfortunately, I'm not following. How is having the code that catches all exceptions in a separate function different from what I proposed (putting the try/catch in the
2012 Mar 23
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...) { > entry: > ; alloc raw space for x on the stack > %x = alloca %item, align 8 > > ; alloc raw space for y on the stack > %y = alloca %item, align 8 > > ; call item::item(1) constructor for x as new(%0) item(1); > %0 = bitcast %item* %x to void* > call void @thunk_item_M_new_i(void* %0, i32 1) > > ; call item::item(2) constructor for y as new(%1) item(2); > %1 = bitcast %item* %y to void* > call void @thunk_item_M_new_i(void* %1, i32 2) > > ; Do something with x & y via another thunk_ function that MIGHT throw an exception. > ; If an excep...
2012 Apr 09
5
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...;> %exception_caught_flag = alloca i8, align 1 >> store i8 0, i8* %exception_caught_flag, align 1 >> %caught_result_storage = alloca %0, align 8 >> store %0 zeroinitializer, %0* %caught_result_storage, align 8 >> %0 = bitcast %item* %x to void* >> invoke void @thunk_item_M_new_i(void* %0, i32 1) >> to label %normal unwind label %unwind >> >> exit: ; preds = %unwind, %dtor >> %1 = phi %0 [ %5, %unwind ], [ %6, %dtor ] >> %2 = phi i8 [ 1, %unwind ], [ %7, %dtor ] >> %3 = icmp eq i8 %...