//RUN: %clang_cc1 %s -triple spir-unknown-unknown -emit-llvm -O0 -o - | FileCheck %s struct C { void foo() __local; void foo() __global; void foo(); void bar(); }; __global C c1; __kernel void k() { __local C c2; C c3; __global C &c_ref = c1; __global C *c_ptr; // CHECK: call spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1) c1.foo(); // CHECK: call spir_func void @_ZNU3AS31C3fooEv(ptr addrspace(3) c2.foo(); // CHECK: call spir_func void @_ZNU3AS41C3fooEv(ptr addrspace(4) c3.foo(); // CHECK: call spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1) c_ptr->foo(); // CHECK: spir_func void @_ZNU3AS11C3fooEv(ptr addrspace(1) c_ref.foo(); // CHECK: call spir_func void @_ZNU3AS41C3barEv(ptr addrspace(4) {{[^,]*}} addrspacecast (ptr addrspace(1) @c1 to ptr addrspace(4))) c1.bar(); //FIXME: Doesn't compile yet //c_ptr->bar(); // CHECK: call spir_func void @_ZNU3AS41C3barEv(ptr addrspace(4) {{[^,]*}} addrspacecast (ptr addrspace(1) @c1 to ptr addrspace(4))) c_ref.bar(); }