; RUN: llvm-as %s -o - | llvm-dis > %t1.ll ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll ; RUN: diff %t1.ll %t2.ll %FunTy = type i28(i28) declare i28 "test"(...) ; Test differences of prototype declare i28 "test"() ; Differ only by vararg implementation define void "invoke"(%FunTy *%x) { %foo = call %FunTy* %x(i28 123) %foo2 = tail call %FunTy* %x(i28 123) ret void } define i28 "main"(i28 %argc) ; TODO: , sbyte **argv, sbyte **envp) begin %retval = call i28 (i28) *%test(i28 %argc) %two = add i28 %retval, %retval %retval2 = invoke i28 %test(i28 %argc) to label %Next unwind label %Error Next: %two2 = add i28 %two, %retval2 call void %invoke (%FunTy* %test) ret i28 %two2 Error: ret i28 -1 end define i28 "test"(i28 %i0) begin ret i28 %i0 end