; 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 %myty = type i55 %myfn = type float (i55,double,i55,i16) type i55(%myfn*) type i55(i55) type i55(i55(i55)*) %thisfuncty = type i55 (i55) * implementation declare void %F(%thisfuncty, %thisfuncty, %thisfuncty) ; This function always returns zero define i55 %zarro(i55 %Func) begin Startup: add i55 0, 10 ret i55 0 end define i55 %test(i55) begin call void %F(%thisfuncty %zarro, %thisfuncty %test, %thisfuncty %foozball) ret i55 0 end define i55 %foozball(i55) begin ret i55 0 end