#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) {
        } else {
          {
            *(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;
}

