Adding links to a node collapsed during type merging crashes.
authorAndrew Lenharth <andrewl@lenharth.org>
Mon, 27 Mar 2006 23:38:48 +0000 (23:38 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Mon, 27 Mar 2006 23:38:48 +0000 (23:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27193 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll [new file with mode: 0644]

diff --git a/test/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll b/test/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll
new file mode 100644 (file)
index 0000000..06af906
--- /dev/null
@@ -0,0 +1,26 @@
+; RUN: llvm-as < %s | analyze -datastructure
+
+target endian = little
+target pointersize = 32
+target triple = "i686-pc-linux-gnu"
+deplibs = [ "c", "crtend", "stdc++" ]
+       %struct.Blend_Map_Entry = type { float, ubyte, { [2 x double], [4 x ubyte] } }
+       %struct.Blend_Map_Struct = type { short, short, short, int, %struct.Blend_Map_Entry* }
+       %struct.Image_Colour_Struct = type { ushort, ushort, ushort, ushort, ushort }
+       %struct.Image_Struct = type { int, int, int, int, int, short, short, [3 x double], float, float, int, int, short, %struct.Image_Colour_Struct*, { ubyte** } }
+       %struct.Pattern_Struct = type { ushort, ushort, ushort, int, float, float, float, %struct.Warps_Struct*, %struct.Pattern_Struct*, %struct.Blend_Map_Struct*, { [3 x double], [4 x ubyte] } }
+       %struct.Tnormal_Struct = type { ushort, ushort, ushort, int, float, float, float, %struct.Warps_Struct*, %struct.Pattern_Struct*, %struct.Blend_Map_Struct*, { [3 x double], [4 x ubyte] }, float }
+       %struct.Warps_Struct = type { ushort, %struct.Warps_Struct* }
+
+implementation   ; Functions:
+
+declare fastcc %struct.Image_Struct* %Parse_Image()
+
+fastcc void %Parse_Bump_Map(%struct.Tnormal_Struct* %Tnormal) {
+entry:
+       %tmp.0 = tail call fastcc %struct.Image_Struct* %Parse_Image( )         ; <%struct.Image_Struct*> [#uses=1]
+       %tmp.28 = getelementptr %struct.Tnormal_Struct* %Tnormal, int 0, uint 10                ; <{ [3 x double], [4 x ubyte] }*> [#uses=1]
+       %tmp.32 = cast { [3 x double], [4 x ubyte] }* %tmp.28 to %struct.Image_Struct**         ; <%struct.Image_Struct**> [#uses=1]
+       store %struct.Image_Struct* %tmp.0, %struct.Image_Struct** %tmp.32
+       ret void
+}