From d02894f466474584f6a137967cf74134e66230cf Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Mon, 27 Mar 2006 23:38:48 +0000 Subject: [PATCH] Adding links to a node collapsed during type merging crashes. llvm-svn: 27193 --- .../DSGraph/2006-03-27-LinkedCollapsed.ll | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 test/Regression/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll diff --git a/test/Regression/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll b/test/Regression/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll new file mode 100644 index 00000000000..06af9063233 --- /dev/null +++ b/test/Regression/Analysis/DSGraph/2006-03-27-LinkedCollapsed.ll @@ -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 +}