| #include <metal_stdlib> | |
| using namespace metal; | |
| struct tint_array_wrapper { | |
| float arr[4]; | |
| }; | |
| struct tint_array_wrapper_1 { | |
| tint_array_wrapper arr[3]; | |
| }; | |
| struct tint_array_wrapper_2 { | |
| tint_array_wrapper_1 arr[2]; | |
| }; | |
| float f1(tint_array_wrapper a) { | |
| return a.arr[3]; | |
| } | |
| float f2(tint_array_wrapper_1 a) { | |
| return a.arr[2].arr[3]; | |
| } | |
| 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; | |
| } | |