aboutsummaryrefslogtreecommitdiffstats
path: root/test/Feature
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2008-03-02 02:48:09 +0000
committerNick Lewycky <nicholas@mxc.ca>2008-03-02 02:48:09 +0000
commit31f5f2403274448e782cab26853e013fd45163db (patch)
tree963a736756189f58a4bd042ddf745b895e40cbac /test/Feature
parent861d43a23f96935ea6ec8e516a4115e6686abd8c (diff)
downloadexternal_llvm-31f5f2403274448e782cab26853e013fd45163db.tar.gz
external_llvm-31f5f2403274448e782cab26853e013fd45163db.tar.bz2
external_llvm-31f5f2403274448e782cab26853e013fd45163db.zip
Add an unwind_to field to basic blocks, making them Users instead of Values.
This is the first checkin for PR1269, the new EH infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47802 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Feature')
-rw-r--r--test/Feature/unwindto.ll48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/Feature/unwindto.ll b/test/Feature/unwindto.ll
new file mode 100644
index 0000000000..7806143759
--- /dev/null
+++ b/test/Feature/unwindto.ll
@@ -0,0 +1,48 @@
+; RUN: llvm-as < %s | llvm-dis | llvm-as -disable-output
+; PR1269
+; END
+; http://nondot.org/sabre/LLVMNotes/ExceptionHandlingChanges.txt
+
+define i1 @test1(i8 %i, i8 %j) {
+entry: unwind_to %target
+ %tmp = sub i8 %i, %j ; <i8> [#uses=1]
+ %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1]
+ ret i1 %b
+target:
+ ret i1 false
+}
+
+define i1 @test2(i8 %i, i8 %j) {
+unwind_to %1
+ %tmp = sub i8 %i, %j ; <i8> [#uses=1]
+ %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1]
+ ret i1 %b
+ ; No predecessors!
+ ret i1 false
+}
+
+define i1 @test3(i8 %i, i8 %j) {
+unwind_to %1
+ %tmp = sub i8 %i, %j ; <i8> [#uses=1]
+ %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1]
+ ret i1 %b
+unwind_to %0
+ ret i1 false
+}
+
+define i1 @test4(i8 %i, i8 %j) {
+ %tmp = sub i8 %i, %j ; <i8> [#uses=1]
+ %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1]
+ br label %1
+unwind_to %1
+ ret i1 false
+}
+
+define void @test5() {
+ unwind
+}
+
+define void @test6() {
+unwind: unwind_to %unwind
+ unwind
+}