#include <metal_stdlib>

using namespace metal;

#define TINT_ISOLATE_UB(VOLATILE_NAME) \
  volatile bool VOLATILE_NAME = true; \
  if (VOLATILE_NAME)

kernel void tint_symbol() {
  int i = 0;
  TINT_ISOLATE_UB(tint_volatile_true) for(int i_1 = 0; (i_1 < 2); i_1 = as_type<int>((as_type<uint>(i_1) + as_type<uint>(1)))) {
    switch(i_1) {
      case 0: {
        continue;
        break;
      }
      default: {
        break;
      }
    }
    switch(i_1) {
      case 0: {
        continue;
        break;
      }
      default: {
        break;
      }
    }
  }
  return;
}

