search for: handle_float

Displaying 3 results from an estimated 3 matches for "handle_float".

2015 Jan 27
2
[LLVMdev] RFC: Native Windows C++ exception handling
...er inner; // eh_state = 3 do_inner_thing(); // eh_state = 2 (because we’re going to destruct inner here) } catch (int) { // eh_state = 4 handle_int(); } // eh_state = 0 (because we’re going to destruct outer here) } catch (float) { // eh_state = 5 handle_float(); } // eh_state = -1; keep_going(); } Basically, the EH state needs to change any time we enter a new scope or construct a new object that needs to be destructed and catch handlers get their own state. Then things get peeled away as the conditions that created the state go away. I don’t t...
2015 Jan 26
2
[LLVMdev] RFC: Native Windows C++ exception handling
I am working on adding support for C++ exception handling when compiling for a native Windows target (that is a target with "MSVC" specified as the environment). Because of differences between how the native Windows runtime handles exceptions and the Itanium-based model used by current LLVM exception handling code, I believe this will require some extensions to the LLVM IR, though
2015 Jan 27
2
[LLVMdev] RFC: Native Windows C++ exception handling
...ning code will need to be taught to merge the landingpad of the inlined function, but I think that will be pretty easy. So, here it is: void test() { try { Outer outer; try { Inner inner; do_inner_thing(); } catch (int) { handle_int(); } } catch (float) { handle_float(); } keep_going(); } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Original ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Function Attrs: uwtable define void @_Z4testv() #0 { entry: %outer = alloca %class.Outer, align 1 %inner = alloca %class.Inner, align 1 call void @llvm.eh.setehstate(i32...