; The funcresolve pass will (intentionally) llvm-link an _internal_ function 
; body with an external declaration.  Because of this, if we LINK an internal 
; function body into a program that already has an external declaration for 
; the function name, we must rename the internal function to something that 
; does not conflict.

; RUN: echo { define internal i32 @foo() \{ ret i32 7 \} } | llvm-as > %t.1.bc
; RUN: llvm-as < %s > %t.2.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep internal | not grep @foo(

declare i32 @foo() 

define i32 @test() { 
  %X = call i32 @foo()
  ret i32 %X
}

