#include <metal_stdlib>

using namespace metal;
void main_1(thread uint* const tint_symbol_1) {
  *(tint_symbol_1) = 1u;
  while (true) {
    *(tint_symbol_1) = 2u;
    *(tint_symbol_1) = 3u;
    switch(42u) {
      case 40u: {
        *(tint_symbol_1) = 40u;
        if (false) {
          {
            *(tint_symbol_1) = 7u;
          }
          continue;
        }
        break;
      }
      default: {
        break;
      }
    }
    *(tint_symbol_1) = 6u;
    {
      *(tint_symbol_1) = 7u;
    }
  }
  *(tint_symbol_1) = 8u;
  return;
}

fragment void tint_symbol() {
  thread uint tint_symbol_2 = 0u;
  main_1(&(tint_symbol_2));
  return;
}

