blob: e892e674ad14b99f413117a03e71ff69b40602eb [file] [log] [blame]
Anastasia Stulova88ed70e2019-07-25 11:04:29 +00001// RUN: %clang_cc1 %s -triple spir -cl-std=clc++ -emit-llvm -O0 -o - | FileCheck %s
Anastasia Stulova9b4c6b82019-04-04 11:08:51 +00002
3// Test that we don't initialize local address space objects.
Anastasia Stulovad6865b72019-05-07 14:22:34 +00004//CHECK: @_ZZ4testE1i = internal addrspace(3) global i32 undef
5//CHECK: @_ZZ4testE2ii = internal addrspace(3) global %class.C undef
Anastasia Stulova9b4c6b82019-04-04 11:08:51 +00006class C {
7 int i;
8};
9
10kernel void test() {
11 __local int i;
12 __local C ii;
13 // FIXME: In OpenCL C we don't accept initializers for local
14 // address space variables. User defined initialization could
15 // make sense, but would it mean that all work items need to
16 // execute it? Potentially disallowing any initialization would
17 // make things easier and assingments can be used to set specific
18 // values. This rules should make it consistent with OpenCL C.
19 //__local C c();
20}