aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2012-01-11 12:20:08 +0000
committerDuncan Sands <baldrick@free.fr>2012-01-11 12:20:08 +0000
commit1876abe63edf0380aee3d0f3ad9cace3f7e6a042 (patch)
tree1403d07800bc0d0e70c5296610c2f4695f6c87ee /test
parente4bc80a14be77c232e1c4e1f30308a72d5cec05a (diff)
downloadexternal_llvm-1876abe63edf0380aee3d0f3ad9cace3f7e6a042.zip
external_llvm-1876abe63edf0380aee3d0f3ad9cace3f7e6a042.tar.gz
external_llvm-1876abe63edf0380aee3d0f3ad9cace3f7e6a042.tar.bz2
Don't try to create a GEP when the pointee type is unsized (such GEPs
are invalid). Fixes a crash on array1.C from the GCC testsuite when compiled with dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147946 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/InstCombine/2012-01-11-OpaqueBitcastCrash.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/2012-01-11-OpaqueBitcastCrash.ll b/test/Transforms/InstCombine/2012-01-11-OpaqueBitcastCrash.ll
new file mode 100644
index 0000000..abab9dc
--- /dev/null
+++ b/test/Transforms/InstCombine/2012-01-11-OpaqueBitcastCrash.ll
@@ -0,0 +1,12 @@
+; RUN: opt < %s -instcombine -disable-output
+
+%opaque_struct = type opaque
+
+@G = external global [0 x %opaque_struct]
+
+declare void @foo(%opaque_struct*)
+
+define void @bar() {
+ call void @foo(%opaque_struct* bitcast ([0 x %opaque_struct]* @G to %opaque_struct*))
+ ret void
+}