search for: eh_select8

Displaying 5 results from an estimated 5 matches for "eh_select8".

Did you mean: eh_select
2007 Dec 09
0
[LLVMdev] Darwin vs exceptions
...t artificially add catch-alls to selectors. Then the above example compiles to: define void @_Z1fv() { ... invoke void @__cxa_throw( something ) noreturn to label %somewhere unwind label %lpad ... lpad: %eh_ptr = tail call i8* @llvm.eh.exception( ) %eh_select8 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)) tail call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) unreachable ... } define i32 @main() { entry: invoke void @_Z1fv( ) to lab...
2007 Dec 09
3
[LLVMdev] Darwin vs exceptions
(Mail system seems to have eaten this, sorry if it's a repeat) On Dec 8, 2007, at 12:48 AM, Duncan Sands wrote: > Hi Dale, > >> - Why was C++ claiming that every selector has a catch-all handler? > > this is easy: because the semantics of invoke require it. Yes, > really. > If unwinding reaches an invoke then control is required to jump to the > unwind basic
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
...Then > the above example compiles to: > > define void @_Z1fv() { > ... > invoke void @__cxa_throw( something ) noreturn > to label %somewhere unwind label %lpad > ... > lpad: > %eh_ptr = tail call i8* @llvm.eh.exception( ) > %eh_select8 = tail call i32 (i8*, i8*, ...)* > @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* > @__gxx_personality_v0 to i8*)) I wasn't advocating this; agree it is wrong. > tail call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) > unreachable > ... > } > &...
2007 Dec 10
0
[LLVMdev] Darwin vs exceptions
...compiles to: > > ... > I wasn't advocating this; agree it is wrong. it's maybe not as wrong as it seems since having an empty selector is equivalent to having a cleanup (IIRC) :) > > ... If you force a "cleanup" by changing the selector call to: > > %eh_select8.i = tail call i32 (i8*, i8*, ...)* > > @llvm.eh.selector.i32( i8* %eh_ptr.i, i8* bitcast (i32 (...)* > > @__gxx_personality_v0 to i8*), i32 0) > > then it doesn't work either: the unwinder observes that there is > > only a cleanup, and > > using some special...
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
On Dec 10, 2007, at 11:38 AM, Duncan Sands wrote: >>> ... If you force a "cleanup" by changing the selector call to: >>> %eh_select8.i = tail call i32 (i8*, i8*, ...)* >>> @llvm.eh.selector.i32( i8* %eh_ptr.i, i8* bitcast (i32 (...)* >>> @__gxx_personality_v0 to i8*), i32 0) >>> then it doesn't work either: the unwinder observes that there is >>> only a cleanup, and >>> using some...