[OpenCL] Fix bug in __builtin_astype causing invalid LLVM cast instructions
authorYaxun Liu <Yaxun.Liu@amd.com>
Mon, 3 Oct 2016 14:41:50 +0000 (14:41 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Mon, 3 Oct 2016 14:41:50 +0000 (14:41 +0000)
commitea6b796e0e8a88af9899b1940b45a2e2b7589523
treed4b40d92078c638c96d31880f6a7eea91df8063b
parentbfdc37421244953af3db189c809fa02bab198b1d
[OpenCL] Fix bug in __builtin_astype causing invalid LLVM cast instructions

__builtin_astype is used to cast OpenCL opaque types to other types, as such, it needs to be able to handle casting from and to pointer types correctly.

Current it cannot handle 1) casting between pointers of different addr spaces 2) casting between pointer type and non-pointer types.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D25123

llvm-svn: 283114
clang/lib/CodeGen/CGExprScalar.cpp
clang/test/CodeGenOpenCL/as_type.cl