; RUN: llvm-as < %s -f -o %t1.bc ; RUN: llvm-as < %p/2004-05-07-TypeResolution2.ll -o %t2.bc -f ; RUN: llvm-link -f -o %t3.bc %t1.bc %t2.bc target datalayout = "e-p:32:32" %myint = type opaque %struct1 = type { i32, void (%struct2*)*, %myint*, i32 (i32*)* } %struct2 = type { %struct1 } @driver1 = global %struct1 zeroinitializer ; <%struct1*> [#uses=1] @m1 = external global [1 x i8]* ; <[1 x i8]**> [#uses=0] @str1 = constant [1 x i8] zeroinitializer ; <[1 x i8]*> [#uses=0] @str2 = constant [2 x i8] zeroinitializer ; <[2 x i8]*> [#uses=0] @str3 = constant [3 x i8] zeroinitializer ; <[3 x i8]*> [#uses=0] @str4 = constant [4 x i8] zeroinitializer ; <[4 x i8]*> [#uses=0] @str5 = constant [5 x i8] zeroinitializer ; <[5 x i8]*> [#uses=0] @str6 = constant [6 x i8] zeroinitializer ; <[6 x i8]*> [#uses=0] @str7 = constant [7 x i8] zeroinitializer ; <[7 x i8]*> [#uses=0] @str8 = constant [8 x i8] zeroinitializer ; <[8 x i8]*> [#uses=0] @str9 = constant [9 x i8] zeroinitializer ; <[9 x i8]*> [#uses=0] @stra = constant [10 x i8] zeroinitializer ; <[10 x i8]*> [#uses=0] @strb = constant [11 x i8] zeroinitializer ; <[11 x i8]*> [#uses=0] @strc = constant [12 x i8] zeroinitializer ; <[12 x i8]*> [#uses=0] @strd = constant [13 x i8] zeroinitializer ; <[13 x i8]*> [#uses=0] @stre = constant [14 x i8] zeroinitializer ; <[14 x i8]*> [#uses=0] @strf = constant [15 x i8] zeroinitializer ; <[15 x i8]*> [#uses=0] @strg = constant [16 x i8] zeroinitializer ; <[16 x i8]*> [#uses=0] @strh = constant [17 x i8] zeroinitializer ; <[17 x i8]*> [#uses=0] declare void @func(%struct2*) define void @tty_init() { entry: volatile store void (%struct2*)* @func, void (%struct2*)** getelementptr (%struct1* @driver1, i64 0, i32 1) ret void }