blob: e673d0bde4fa85d0424e6029731df99b1b70926b [file] [log] [blame]
; ModuleID = 'InvokeUnwind.ll'
declare void @abort()
define internal void @throw(i1 %ShouldThrow) {
br i1 %ShouldThrow, label %Throw, label %NoThrow
Throw: ; preds = %0
unwind
NoThrow: ; preds = %0
ret void
}
define i32 @main() {
invoke void @throw( i1 false )
to label %Cont unwind label %Abort
Cont: ; preds = %0
invoke void @throw( i1 true )
to label %Abort unwind label %Exc
Abort: ; preds = %Cont, %0
call void @abort( )
ret i32 1
Exc: ; preds = %Cont
ret i32 0
}