summaryrefslogtreecommitdiff
path: root/test/Transforms/GlobalOpt/malloc-promote-3.llx
blob: 85ce6bdbc862db6bb1af1e1e9c9471559b8c4ea3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep malloc

%G = internal global int* null

void %init() {
	%P = malloc int, uint 100
	store int* %P, int** %G

	%GV = load int** %G
	%GVe = getelementptr int* %GV, int 40
	store int 20, int* %GVe
	ret void
}

int %get() {
	%GV = load int** %G
	%GVe = getelementptr int* %GV, int 40
	%V = load int* %GVe
	ret int %V
}

bool %check() {    ;; Return true if init has been called
	%GV = load int** %G
	%V = seteq int* %GV, null
	ret bool %V
}