Displaying 3 results from an estimated 3 matches for "eh_select14".
2007 Dec 09
0
[LLVMdev] Darwin vs exceptions
...l call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )
unreachable
...
}
define i32 @main() {
entry:
invoke void @_Z1fv( )
to label %somewhere2 unwind label %lpad2
...
lpad2: ; preds = %entry
%eh_ptr = tail call i8* @llvm.eh.exception( )
%eh_select14 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null )
print_a_message_and_exit
...
}
And this works fine: main calls _Z1fv which throws an exception. Execution branches to lpad where
(empty) cleanup code is run, the...
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
...unreachable
> ...
> }
>
> define i32 @main() {
> entry:
> invoke void @_Z1fv( )
> to label %somewhere2 unwind label %lpad2
> ...
> lpad2: ; preds = %entry
> %eh_ptr = tail call i8* @llvm.eh.exception( )
> %eh_select14 = tail call i32 (i8*, i8*, ...)*
> @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)*
> @__gxx_personality_v0 to i8*), i8* null )
> print_a_message_and_exit
> ...
> }
>
> And this works fine: main calls _Z1fv which throws an exception.
> Execution branches t...