1#version 450
2layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
3
4#ifndef SPIRV_CROSS_CONSTANT_ID_0
5#define SPIRV_CROSS_CONSTANT_ID_0 100
6#endif
7const int a = SPIRV_CROSS_CONSTANT_ID_0;
8#ifndef SPIRV_CROSS_CONSTANT_ID_1
9#define SPIRV_CROSS_CONSTANT_ID_1 200
10#endif
11const int b = SPIRV_CROSS_CONSTANT_ID_1;
12
13struct A
14{
15    int member0[a];
16    int member1[b];
17};
18
19struct B
20{
21    int member0[b];
22    int member1[a];
23};
24
25#ifndef SPIRV_CROSS_CONSTANT_ID_2
26#define SPIRV_CROSS_CONSTANT_ID_2 300
27#endif
28const int c = SPIRV_CROSS_CONSTANT_ID_2;
29const int d = (c + 50);
30#ifndef SPIRV_CROSS_CONSTANT_ID_3
31#define SPIRV_CROSS_CONSTANT_ID_3 400
32#endif
33const int e = SPIRV_CROSS_CONSTANT_ID_3;
34
35layout(binding = 0, std430) buffer SSBO
36{
37    A member_a;
38    B member_b;
39    int v[a];
40    int w[d];
41} _22;
42
43void main()
44{
45    _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e);
46}
47
48