1617a3babSopenharmony_ci 2617a3babSopenharmony_ci// array size from initializer 3617a3babSopenharmony_cistatic float g_array [ ] = { 1, 2, 3, 4, 5 }; 4617a3babSopenharmony_ci 5617a3babSopenharmony_ci// Unused: array size from initializer 6617a3babSopenharmony_cistatic float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; 7617a3babSopenharmony_ci 8617a3babSopenharmony_ci// Test initializer sizing for arrayed structs 9617a3babSopenharmony_cistatic struct mystruct { 10617a3babSopenharmony_ci int i; 11617a3babSopenharmony_ci float f; 12617a3babSopenharmony_ci} g_mystruct[] = { 13617a3babSopenharmony_ci { 1, 2.0 }, 14617a3babSopenharmony_ci { 3, 4.0 }, 15617a3babSopenharmony_ci}; 16617a3babSopenharmony_ci 17617a3babSopenharmony_cistruct PS_OUTPUT { float4 color : SV_Target0; }; 18617a3babSopenharmony_ci 19617a3babSopenharmony_ci// INVALID: implicit size requires an initializer expression. 20617a3babSopenharmony_ci// uniform float bad[]; 21617a3babSopenharmony_ci 22617a3babSopenharmony_ci// INVALID: function parameters cannot be implicitly sized 23617a3babSopenharmony_ci// void BadFunction(int a[]) { } 24617a3babSopenharmony_ci 25617a3babSopenharmony_civoid main(out PS_OUTPUT ps_output) 26617a3babSopenharmony_ci{ 27617a3babSopenharmony_ci // local array sized from initializers 28617a3babSopenharmony_ci float l_array[] = { 1, 2, 3 }; 29617a3babSopenharmony_ci int idx; 30617a3babSopenharmony_ci 31617a3babSopenharmony_ci ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx]; 32617a3babSopenharmony_ci} 33