Displaying 3 results from an estimated 3 matches for "print_a_message_and_exit".
2007 Dec 09
0
[LLVMdev] Darwin vs exceptions
...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, then unwinding is resumed. The unwinder unwinds into main, and branches
to lpad2 (because the selector has a catch-all, the null) which prints a message and exits....
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
...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, then unwinding is resumed. The
> unwinder unwinds into main, and branches
> to lpad2 (because the selector has a catch-all,...