blob: 606ab22f69f5cfcd147ec836c02f2dd5cc183956 [file] [log] [blame]
Anastasia Stulova7eb69382018-11-19 11:00:14 +00001// RUN: %clang_cc1 -cl-std=c++ %s -emit-llvm -o - -O0 -triple spir-unknown-unknown | FileCheck %s
2
3template <typename T>
4struct S{
5 T a;
6 T foo();
7};
8
9template<typename T>
10T S<T>::foo() { return a;}
11
12//CHECK: %struct.S = type { i32 }
13//CHECK: %struct.S.0 = type { i32 addrspace(4)* }
14//CHECK: %struct.S.1 = type { i32 addrspace(1)* }
15
16//CHECK: i32 @_ZN1SIiE3fooEv(%struct.S* %this)
17//CHECK: i32 addrspace(4)* @_ZN1SIPU3AS4iE3fooEv(%struct.S.0* %this)
18//CHECK: i32 addrspace(1)* @_ZN1SIPU3AS1iE3fooEv(%struct.S.1* %this)
19
20void bar(){
21 S<int> sint;
22 S<int*> sintptr;
23 S<__global int*> sintptrgl;
24 // FIXME: Preserve AS in TreeTransform
25 //S<__global int> sintgl;
26
27 sint.foo();
28 sintptr.foo();
29 sintptrgl.foo();
30 //sintgl.foo();
31}