; RUN: llvm-link %s %S/Inputs/testlink.ll -S | FileCheck %s

; CHECK: %Ty2 = type { %Ty1* }
; CHECK: %Ty1 = type { %Ty2* }
%Ty1 = type opaque
%Ty2 = type { %Ty1* }

; CHECK: %intlist = type { %intlist*, i32 }
%intlist = type { %intlist*, i32 }

; The uses of intlist in the other file should be remapped.
; CHECK-NOT: {{%intlist.[0-9]}}

; CHECK: %VecSize = type { <5 x i32> }
; CHECK: %VecSize.{{[0-9]}} = type { <10 x i32> }
%VecSize = type { <5 x i32> }

%Struct1 = type opaque
@S1GV = external global %Struct1*


@GVTy1 = external global %Ty1*
@GVTy2 = global %Ty2* null


; This should stay the same
; CHECK-DAG: @MyIntList = global %intlist { %intlist* null, i32 17 }
@MyIntList = global %intlist { %intlist* null, i32 17 }


; Nothing to link here.

; CHECK-DAG: @0 = external global i32
@0 = external global i32
; CHECK-DAG: @Inte = global i32 1
@Inte = global i32 1

; Intern1 is intern in both files, rename testlink2's.
; CHECK-DAG: @Intern1 = internal constant i32 42
@Intern1 = internal constant i32 42

@UseIntern1 = global i32* @Intern1

; This should get renamed since there is a definition that is non-internal in
; the other module.
; CHECK-DAG: @Intern2{{[0-9]+}} = internal constant i32 792
@Intern2 = internal constant i32 792

@UseIntern2 = global i32* @Intern2

; CHECK-DAG: @MyVarPtr = linkonce global { i32* } { i32* @MyVar }
@MyVarPtr = linkonce global { i32* } { i32* @MyVar }

@UseMyVarPtr = global { i32* }* @MyVarPtr

; CHECK-DAG: @MyVar = global i32 4
@MyVar = external global i32

; Take value from other module.
; CHECK-DAG: AConst = constant i32 1234
@AConst = linkonce constant i32 123

; Renamed version of Intern1.
; CHECK-DAG: @Intern1{{[0-9]+}} = internal constant i32 52


; Globals linked from testlink2.
; CHECK-DAG: @Intern2 = constant i32 12345

; CHECK-DAG: @MyIntListPtr = constant
; CHECK-DAG: @1 = constant i32 412


declare i32 @foo(i32)

declare void @print(i32)

define void @main() {
  %v1 = load i32* @MyVar
  call void @print(i32 %v1)
  %idx = getelementptr %intlist* @MyIntList, i64 0, i32 1
  %v2 = load i32* %idx
  call void @print(i32 %v2)
  %1 = call i32 @foo(i32 5)
  %v3 = load i32* @MyVar
  call void @print(i32 %v3)
  %v4 = load i32* %idx
  call void @print(i32 %v4)
  ret void
}

define internal void @testintern() {
  ret void
}

define internal void @Testintern() {
  ret void
}

define void @testIntern() {
  ret void
}

declare void @VecSizeCrash(%VecSize)
