diff options
author | Mikael Nilsson <mikael.nilsson@arm.com> | 2018-12-12 14:11:59 +0000 |
---|---|---|
committer | Mikael Nilsson <mikael.nilsson@arm.com> | 2018-12-12 14:11:59 +0000 |
commit | 8e20f7a8e079e9229434a170e7e451eb3c779966 (patch) | |
tree | 41b4fe607bea3167baa47bc7cfb5f4cae141367a /test/CodeGenOpenCLCXX/template-address-spaces.cl | |
parent | df55f5633e966afc4b3d5fc76e76f89ba4140b3c (diff) | |
download | clang-8e20f7a8e079e9229434a170e7e451eb3c779966.tar.gz |
[OpenCL] Add generic AS to 'this' pointer
Address spaces are cast into generic before invoking the constructor.
Added support for a trailing Qualifiers object in FunctionProtoType.
Differential Revision: https://reviews.llvm.org/D54862
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@348927 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenOpenCLCXX/template-address-spaces.cl')
-rw-r--r-- | test/CodeGenOpenCLCXX/template-address-spaces.cl | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/test/CodeGenOpenCLCXX/template-address-spaces.cl b/test/CodeGenOpenCLCXX/template-address-spaces.cl index eb274ea456..7c722537fc 100644 --- a/test/CodeGenOpenCLCXX/template-address-spaces.cl +++ b/test/CodeGenOpenCLCXX/template-address-spaces.cl @@ -9,13 +9,16 @@ struct S{ template<typename T> T S<T>::foo() { return a;} -//CHECK: %struct.S = type { i32 } -//CHECK: %struct.S.0 = type { i32 addrspace(4)* } -//CHECK: %struct.S.1 = type { i32 addrspace(1)* } +// CHECK: %struct.S = type { i32 } +// CHECK: %struct.S.0 = type { i32 addrspace(4)* } +// CHECK: %struct.S.1 = type { i32 addrspace(1)* } -//CHECK: i32 @_ZN1SIiE3fooEv(%struct.S* %this) -//CHECK: i32 addrspace(4)* @_ZN1SIPU3AS4iE3fooEv(%struct.S.0* %this) -//CHECK: i32 addrspace(1)* @_ZN1SIPU3AS1iE3fooEv(%struct.S.1* %this) +// CHECK: %0 = addrspacecast %struct.S* %sint to %struct.S addrspace(4)* +// CHECK: %call = call i32 @_ZNU3AS41SIiE3fooEv(%struct.S addrspace(4)* %0) #1 +// CHECK: %1 = addrspacecast %struct.S.0* %sintptr to %struct.S.0 addrspace(4)* +// CHECK: %call1 = call i32 addrspace(4)* @_ZNU3AS41SIPU3AS4iE3fooEv(%struct.S.0 addrspace(4)* %1) #1 +// CHECK: %2 = addrspacecast %struct.S.1* %sintptrgl to %struct.S.1 addrspace(4)* +// CHECK: %call2 = call i32 addrspace(1)* @_ZNU3AS41SIPU3AS1iE3fooEv(%struct.S.1 addrspace(4)* %2) #1 void bar(){ S<int> sint; |