-; caller returns true if might_throw throws an exception...
-int %caller() {
- %X = invoke int %callee() to label %cont
- except label %UnreachableExceptionHandler
-cont:
- ret int %X
-UnreachableExceptionHandler:
- ret int -1 ; This is dead!
+; caller returns true if might_throw throws an exception... callee cannot throw.
+define i32 @caller() {
+ %X = invoke i32 @callee( )
+ to label %cont unwind label %UnreachableExceptionHandler ; <i32> [#uses=1]
+
+cont: ; preds = %0
+ ret i32 %X
+
+UnreachableExceptionHandler: ; preds = %0
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ cleanup
+ ret i32 -1