Test that eh_selector lowering accepts global variables as well as bitcasts
authorDuncan Sands <baldrick@free.fr>
Fri, 27 Apr 2007 06:56:53 +0000 (06:56 +0000)
committerDuncan Sands <baldrick@free.fr>
Fri, 27 Apr 2007 06:56:53 +0000 (06:56 +0000)
of global variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36500 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/Generic/2007-04-14-EHSelectorCrash.ll [new file with mode: 0644]

diff --git a/test/CodeGen/Generic/2007-04-14-EHSelectorCrash.ll b/test/CodeGen/Generic/2007-04-14-EHSelectorCrash.ll
new file mode 100644 (file)
index 0000000..4f4d4f0
--- /dev/null
@@ -0,0 +1,14 @@
+; RUN: llvm-as < %s | llc -enable-eh
+
+; ModuleID = '2007-04-14-EHSelectorCrash.bc'
+@__gnat_others_value = external constant i32           ; <i32*> [#uses=1]
+
+define void @_ada_eh() {
+entry:
+       %eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* null, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )            ; <i32> [#uses=0]
+       ret void
+}
+
+declare i32 @llvm.eh.selector(i8*, i8*, ...)
+
+declare i32 @__gnat_eh_personality(...)