| #include <metal_stdlib> |
| |
| using namespace metal; |
| struct tint_array_wrapper { |
| float arr[4]; |
| }; |
| |
| float f1(tint_array_wrapper a) { |
| return a.arr[3]; |
| } |
| |
| struct tint_array_wrapper_1 { |
| tint_array_wrapper arr[3]; |
| }; |
| |
| float f2(tint_array_wrapper_1 a) { |
| return a.arr[2].arr[3]; |
| } |
| |
| struct tint_array_wrapper_2 { |
| tint_array_wrapper_1 arr[2]; |
| }; |
| |
| float f3(tint_array_wrapper_2 a) { |
| return a.arr[1].arr[2].arr[3]; |
| } |
| |
| kernel void tint_symbol() { |
| tint_array_wrapper const a1 = {.arr={}}; |
| tint_array_wrapper_1 const a2 = {.arr={}}; |
| tint_array_wrapper_2 const a3 = {.arr={}}; |
| float const v1 = f1(a1); |
| float const v2 = f2(a2); |
| float const v3 = f3(a3); |
| return; |
| } |
| |