+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll
+; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
+; RUN: diff %t1.ll %t2.ll
+
%FunTy = type int(int)
-declare int "test"(...) ; Test differences of prototype
-declare int "test"() ; Differ only by vararg
+declare int "test"(int) ; Test forward declaration merging
implementation
-void "invoke"(%FunTy *%x)
-begin
+void "invoke"(%FunTy *%x) {
%foo = call %FunTy* %x(int 123)
+ %foo2 = tail call %FunTy* %x(int 123)
ret void
-end
+}
int "main"(int %argc) ; TODO: , sbyte **argv, sbyte **envp)
begin