forked from OSchip/llvm-project
35 lines
620 B
LLVM
35 lines
620 B
LLVM
; 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 int
|
|
%myfn = type float (int,double,uint,short)
|
|
type int(%myfn*)
|
|
type int(int)
|
|
type int(int(int)*)
|
|
|
|
%thisfuncty = type int (int) *
|
|
implementation
|
|
|
|
declare void %F(%thisfuncty, %thisfuncty, %thisfuncty)
|
|
|
|
; This function always returns zero
|
|
int %zarro(int %Func)
|
|
begin
|
|
Startup:
|
|
add int 0, 10
|
|
ret int 0
|
|
end
|
|
|
|
int %test(int)
|
|
begin
|
|
call void %F(%thisfuncty %zarro, %thisfuncty %test, %thisfuncty %foozball)
|
|
ret int 0
|
|
end
|
|
|
|
int %foozball(int)
|
|
begin
|
|
ret int 0
|
|
end
|
|
|