#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  device int* s;
};

void f(int a__, tint_module_vars_struct tint_module_vars) {
  int const b = a__;
  (*tint_module_vars.s) = b;
}

kernel void tint_symbol(device int* s [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
  f(1, tint_module_vars);
}
