#include <metal_stdlib>

using namespace metal;
struct tint_private_vars_struct {
  float v;
};

void x(thread float* const p) {
  *(p) = 0.0f;
}

void g(thread tint_private_vars_struct* const tint_private_vars) {
  x(&((*(tint_private_vars)).v));
}

fragment void f() {
  thread tint_private_vars_struct tint_private_vars = {};
  g(&(tint_private_vars));
  return;
}

