; Test that returning a pointer to a function causes the disassembler to print 
; the right thing.
;
; RUN: llvm-as < %s | llvm-dis | llvm-as

%ty = type void (int)

declare %ty* %foo()

void %test() {
	call %ty*()* %foo()
	ret void
}
