; Test that any rethrown exceptions in an inlined function are automatically
; turned into branches to the invoke destination.
-; RUN: as < %s | opt -inline | dis | not grep 'call void %llvm.exc.rethrow'
+; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep 'call void %llvm.unwind'
declare void %might_throw()
-declare void %llvm.exc.rethrow()
+declare void %llvm.unwind()
implementation
cont:
ret int 0
exc: ; This just rethrows the exception!
- call void %llvm.exc.rethrow()
- ret int 0
+ call void %llvm.unwind()
+ ret int 123 ; DEAD!
}
-; caller returns true if might_throw throws an exception...
+; caller returns true if might_throw throws an exception... which gets
+; propagated by callee.
int %caller() {
%X = invoke int %callee() to label %cont
except label %Handler
ret int %X
Handler:
; This consumes an exception thrown by might_throw
- ret int -1
+ ret int 1
}