#include <metal_stdlib>
using namespace metal;

struct S1 {
  int i;
};

struct S2 {
  S1 s1;
};

struct S3 {
  S2 s2;
};

struct tint_module_vars_struct {
  device int* out;
};

int f(S3 s3) {
  return s3.s2.s1.i;
}

kernel void v(device int* out [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
  (*tint_module_vars.out) = f(S3{.s2=S2{.s1=S1{.i=42}}});
}
