// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -finclude-default-header -verify %s struct A { RWBuffer Buf; RWBuffer ManyBufs[5]; }; A array[10] : register(u10); [numthreads(4,1,1)] void main(uint GI : SV_GroupThreadID) { // expected-error@+1 {{index for struct array inside cbuffer that contains resources must be a constant integer expression}} array[GI].Buf[0] = 1.0f; array[2].Buf[GI] = 2.0f; // ok // expected-error@+1 {{index for struct array inside cbuffer that contains resources must be a constant integer expression}} array[GI].ManyBufs[3][0] = 3.0f; array[1].ManyBufs[GI][0] = 4.0f; // ok array[1+1].ManyBufs[GI][0] = 4.0f; // ok int x = 3; array[1].ManyBufs[x][0] = 4.0f; // ok }