about summary refs log tree commit diff homepage
path: root/test/Concrete/InvokeAndReturn.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Concrete/InvokeAndReturn.ll')
-rw-r--r--test/Concrete/InvokeAndReturn.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/Concrete/InvokeAndReturn.ll b/test/Concrete/InvokeAndReturn.ll
new file mode 100644
index 00000000..f73c242a
--- /dev/null
+++ b/test/Concrete/InvokeAndReturn.ll
@@ -0,0 +1,18 @@
+declare void @print_i32(i32)
+
+define i8 @sum(i8 %a, i8 %b) {
+	%c = add i8 %a, %b
+	ret i8 %c
+}
+
+define i32 @main() {
+	invoke i8 @sum(i8 1, i8 2) 
+		to label %continue
+		unwind label %error
+continue:
+	call void @print_i32(i32 1)
+	ret i32 0
+error:
+	call void @print_i32(i32 0)
+	ret i32 0
+}