2008-03-10 08:21:50 +01:00
|
|
|
; RUN: llvm-as < %s > %t.bc
|
|
|
|
; RUN: llvm-as < %p/testlink2.ll > %t2.bc
|
2003-09-15 22:04:28 +02:00
|
|
|
; RUN: llvm-link %t.bc %t2.bc
|
2001-10-13 09:15:38 +02:00
|
|
|
|
2008-03-10 08:21:50 +01:00
|
|
|
@MyVar = external global i32 ; <i32*> [#uses=3]
|
|
|
|
@MyIntList = global { \2*, i32 } { { \2*, i32 }* null, i32 17 } ; <{ \2*, i32 }*> [#uses=1]
|
|
|
|
external global i32 ; <i32*>:0 [#uses=0]
|
|
|
|
@Inte = global i32 1 ; <i32*> [#uses=0]
|
|
|
|
@AConst = linkonce constant i32 123 ; <i32*> [#uses=0]
|
|
|
|
@Intern1 = internal constant i32 42 ; <i32*> [#uses=0]
|
|
|
|
@Intern2 = internal constant i32 792 ; <i32*> [#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 ; <i32> [#uses=1]
|
|
|
|
call void @print( i32 %v1 )
|
|
|
|
%idx = getelementptr { \2*, i32 }* @MyIntList, i64 0, i32 1 ; <i32*> [#uses=2]
|
|
|
|
%v2 = load i32* %idx ; <i32> [#uses=1]
|
|
|
|
call void @print( i32 %v2 )
|
|
|
|
call i32 @foo( i32 5 ) ; <i32>:1 [#uses=0]
|
|
|
|
%v3 = load i32* @MyVar ; <i32> [#uses=1]
|
|
|
|
call void @print( i32 %v3 )
|
|
|
|
%v4 = load i32* %idx ; <i32> [#uses=1]
|
|
|
|
call void @print( i32 %v4 )
|
|
|
|
ret void
|
|
|
|
}
|
2001-10-13 09:15:38 +02:00
|
|
|
|
2008-03-10 08:21:50 +01:00
|
|
|
define internal void @testintern() {
|
2001-10-13 09:15:38 +02:00
|
|
|
ret void
|
2008-03-10 08:21:50 +01:00
|
|
|
}
|
2001-10-13 09:15:38 +02:00
|
|
|
|
2008-03-10 08:21:50 +01:00
|
|
|
define internal void @Testintern() {
|
|
|
|
ret void
|
|
|
|
}
|
2001-11-26 20:17:06 +01:00
|
|
|
|
2008-03-10 08:21:50 +01:00
|
|
|
define void @testIntern() {
|
|
|
|
ret void
|
|
|
|
}
|