#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; | |
} | |