#include <metal_stdlib>

using namespace metal;
struct str {
  int i;
};

void func(threadgroup int* const pointer) {
  *(pointer) = 42;
}

void tint_symbol_inner(uint local_invocation_index, threadgroup str* const tint_symbol_2) {
  {
    str const tint_symbol_1 = str{};
    *(tint_symbol_2) = tint_symbol_1;
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  func(&((*(tint_symbol_2)).i));
}

kernel void tint_symbol(uint local_invocation_index [[thread_index_in_threadgroup]]) {
  threadgroup str tint_symbol_3;
  tint_symbol_inner(local_invocation_index, &(tint_symbol_3));
  return;
}

