aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/CBackend/2002-08-26-IndirectCallTest.ll
blob: 9a76cfbc7a3125399e14d4641b46fb60d4e69d0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; RUN: llvm-as < %s | llc -march=c

; Indirect function call test... found by Joel & Brian
;

%taskArray = uninitialized global int*

void %test(int %X) {
	%Y = add int %X, -1          ; <int>:1 [#uses=3]
        %cast100 = cast int %Y to long          ; <uint> [#uses=1]
        %gep100 = getelementptr int** %taskArray, long %cast100         ; <int**> [#uses=1]
        %fooPtr = load int** %gep100            ; <int*> [#uses=1]
        %cast101 = cast int* %fooPtr to void (int)*             ; <void (int)*> [#uses=1]
        call void %cast101( int 1000 )
	ret void
}