; RUN: llvm-as < %s > %t.bc ; RUN: llvm-as < %p/testlink2.ll > %t2.bc ; RUN: llvm-link %t.bc %t2.bc @MyVar = external global i32 ; [#uses=3] @MyIntList = global { \2*, i32 } { { \2*, i32 }* null, i32 17 } ; <{ \2*, i32 }*> [#uses=1] external global i32 ; :0 [#uses=0] @Inte = global i32 1 ; [#uses=0] @AConst = linkonce constant i32 123 ; [#uses=0] @Intern1 = internal constant i32 42 ; [#uses=0] @Intern2 = internal constant i32 792 ; [#uses=0] @MyVarPtr = linkonce global { i32* } { i32* @MyVar } ; <{ i32* }*> [#uses=0] declare i32 @foo(i32) declare void @print(i32) define void @main() { %v1 = load i32* @MyVar ; [#uses=1] call void @print( i32 %v1 ) %idx = getelementptr { \2*, i32 }* @MyIntList, i64 0, i32 1 ; [#uses=2] %v2 = load i32* %idx ; [#uses=1] call void @print( i32 %v2 ) call i32 @foo( i32 5 ) ; :1 [#uses=0] %v3 = load i32* @MyVar ; [#uses=1] call void @print( i32 %v3 ) %v4 = load i32* %idx ; [#uses=1] call void @print( i32 %v4 ) ret void } define internal void @testintern() { ret void } define internal void @Testintern() { ret void } define void @testIntern() { ret void }