Clean up testcases to make them proper
[oota-llvm.git] / test / Linker / testlink1.ll
1 ; RUN: as < %s > Output/%s.bc
2 ; RUN: as < testlink2.ll > Output/testlink2.bc
3 ; RUN: link Output/%s.bc Output/testlink2.bc
4
5 %MyVar     = uninitialized global int
6 %MyIntList = global { \2 *, int } { { \2, int }* null, int 17 }
7              uninitialized global int      ; int*:0
8
9 %AConst    = constant int 123
10
11 %Intern1   = internal constant int 42
12 %Intern2   = internal constant int 792
13
14 ; Initialized to point to external %MyVar
15 %MyVarPtr  = global { int * }  { int * %MyVar }
16
17 declare int "foo"(int %blah)      ;; Declared in testlink2.ll
18
19 declare void "print"(int %Value)
20
21 implementation
22
23 void "main"()
24 begin
25         %v1 = load int* %MyVar
26         call void %print(int %v1)    ;; Should start out 4
27
28         %v2 = load { \2 *, int }* %MyIntList, uint 0, ubyte 1
29         call void %print(int %v2)    ;; Should start out 17
30
31         call int %foo(int 5)         ;; Modify global variablesx
32
33         %v3 = load int* %MyVar
34         call void %print(int %v3)    ;; Should now be 5
35
36         %v4 = load { \2 *, int }* %MyIntList, uint 0, ubyte 1
37         call void %print(int %v4)    ;; Should start out 12
38
39         ret void
40 end
41
42 internal void "testintern"() begin ret void end
43 internal void "Testintern"() begin ret void end
44          void "testIntern"() begin ret void end
45