#include <metal_stdlib>

using namespace metal;
void main_1(thread uint* const tint_symbol_1) {
  *(tint_symbol_1) = 1u;
  switch(42u) {
    case 20u: {
      *(tint_symbol_1) = 20u;
      if (false) {
      } else {
        break;
      }
      /* fallthrough */
    }
    case 30u: {
      *(tint_symbol_1) = 30u;
      break;
    }
    default: {
      break;
    }
  }
  *(tint_symbol_1) = 7u;
  return;
}

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

