summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-05-06 09:09:47 +0000
committerChris Lattner <sabre@nondot.org>2006-05-06 09:09:47 +0000
commit707f41302b51e0ff4e266933387b2c62bbb596e8 (patch)
treeec20a3099470c8f5276e8d836ba6d91bcfb6c0a8 /test
parent33a61139951d00191b1ca15dd4502ff114c3d169 (diff)
downloadllvm-707f41302b51e0ff4e266933387b2c62bbb596e8.tar.gz
llvm-707f41302b51e0ff4e266933387b2c62bbb596e8.tar.bz2
llvm-707f41302b51e0ff4e266933387b2c62bbb596e8.tar.xz
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28142 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll b/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll
new file mode 100644
index 0000000000..cbe77a2e7c
--- /dev/null
+++ b/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll
@@ -0,0 +1,33 @@
+; RUN: llvm-as < %s | llc
+
+ %struct.FILE = type { ubyte*, int, int, short, short, %struct.__sbuf, int, sbyte*, int (sbyte*)*, int (sbyte*, sbyte*, int)*, long (sbyte*, long, int)*, int (sbyte*, sbyte*, int)*, %struct.__sbuf, %struct.__sFILEX*, int, [3 x ubyte], [1 x ubyte], %struct.__sbuf, int, long }
+ %struct.SYMBOL_TABLE_ENTRY = type { [9 x sbyte], [9 x sbyte], int, int, uint, %struct.SYMBOL_TABLE_ENTRY* }
+ %struct.__sFILEX = type opaque
+ %struct.__sbuf = type { ubyte*, int }
+%str14 = external global [6 x sbyte] ; <[6 x sbyte]*> [#uses=0]
+
+implementation ; Functions:
+
+declare void %fprintf(int, ...)
+
+void %OUTPUT_TABLE(%struct.SYMBOL_TABLE_ENTRY* %SYM_TAB) {
+entry:
+ %tmp11 = getelementptr %struct.SYMBOL_TABLE_ENTRY* %SYM_TAB, int 0, uint 1, int 0 ; <sbyte*> [#uses=2]
+ %tmp.i = cast sbyte* %tmp11 to ubyte* ; <ubyte*> [#uses=1]
+ br label %bb.i
+
+bb.i: ; preds = %cond_next.i, %entry
+ %s1.0.i = phi ubyte* [ %tmp.i, %entry ], [ null, %cond_next.i ] ; <ubyte*> [#uses=0]
+ br bool false, label %cond_true.i31, label %cond_next.i
+
+cond_true.i31: ; preds = %bb.i
+ call void (int, ...)* %fprintf( int 0, sbyte* %tmp11, sbyte* null )
+ ret void
+
+cond_next.i: ; preds = %bb.i
+ br bool false, label %bb.i, label %bb19.i
+
+bb19.i: ; preds = %cond_next.i
+ ret void
+}
+