; RUN: opt < %s -anders-aa -aa-eval 2>/dev/null

define void @test1() {
	%X = malloc i32*
	%Y = malloc i32
	%Z = ptrtoint i32* %Y to i32
	%W = inttoptr i32 %Z to i32*
	store i32* %W, i32** %X
	ret void
}

define void @test2(i32* %P) {
	%X = malloc i32*
	%Y = malloc i32
	store i32* %P, i32** %X
	ret void
}

define internal i32 *@test3(i32* %P) {
	ret i32* %P
}

define void @test4() {
	%X = malloc i32
	%Y = call i32* @test3(i32* %X)
	%ZZ = getelementptr i32* null, i32 17
	ret void
}
