<div dir="ltr"><div>Hello, LLVM devs.</div><div><br></div><div>I have the following IR:</div><div><br></div><div>  %x = alloca i32, align 4<br>  %p = alloca i32*, align 8<br>  store i32* %x, i32** %p, align 8<br>  <br></div><div>Now I change module's data layout and run InferAddressSpacePass. This turns that piece of code into</div><div><br></div><div>  %x = alloca i32, align 4, addrspace(1)<br>  %p = alloca i32*, align 8, addrspace(1)<br>  store i32 addrspace(1)* %x, i32* addrspace(1)* %p, align 8</div><div><br></div><div>But Verifier complains that the module is invalid, saying</div><div><br></div><div>error: stored value and pointer type do not match<br>store i32 addrspace(1)* %x3, i32* addrspace(1)* %p4, align 8</div><div><br></div><div>I didn't even manage to write correct IR manually in presence of addrspace().</div><div>Is it a bug, or I'm missing something?</div><div><br></div><div>Thanks in advance.<br></div></div>