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

