new testcase for PR662
[oota-llvm.git] / test / Linker / testlink1.ll
index 87a9e9a49399729c639b9028b5e2ad2ba4c971b5..df70afe0548ce4fe256315a14a1e7a25121d18c2 100644 (file)
@@ -1,9 +1,18 @@
+; RUN: llvm-as < %s > %t.bc
+; RUN: llvm-as < `dirname %s`/testlink2.ll > %t2.bc
+; RUN: llvm-link %t.bc %t2.bc
 
-%MyVar     = uninitialized global int
+%MyVar     = external global int
 %MyIntList = global { \2 *, int } { { \2, int }* null, int 17 }
-             uninitialized global int      ; int*:0
+             external global int      ; int*:0
 
-%AConst    = constant int 123
+%AConst    = linkonce constant int 123
+
+%Intern1   = internal constant int 42
+%Intern2   = internal constant int 792
+
+; Initialized to point to external %MyVar
+%MyVarPtr  = linkonce global { int * }  { int * %MyVar }
 
 declare int "foo"(int %blah)      ;; Declared in testlink2.ll
 
@@ -16,7 +25,8 @@ begin
        %v1 = load int* %MyVar
        call void %print(int %v1)    ;; Should start out 4
 
-       %v2 = load { \2 *, int }* %MyIntList, ubyte 1
+       %idx = getelementptr { \2 *, int }* %MyIntList, long 0, ubyte 1
+       %v2 = load int* %idx
        call void %print(int %v2)    ;; Should start out 17
 
        call int %foo(int 5)         ;; Modify global variablesx
@@ -24,9 +34,13 @@ begin
        %v3 = load int* %MyVar
        call void %print(int %v3)    ;; Should now be 5
 
-       %v4 = load { \2 *, int }* %MyIntList, ubyte 1
+       %v4 = load int* %idx
        call void %print(int %v4)    ;; Should start out 12
 
        ret void
 end
 
+internal void "testintern"() begin ret void end
+internal void "Testintern"() begin ret void end
+         void "testIntern"() begin ret void end
+