aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/CBackend/2002-08-26-IndirectCallTest.ll
blob: 4a977e864b882e37496b8a62924cdf9c37acc7c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; RUN: llvm-upgrade < %s | llvm-as | 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
}