SKIP: FAILED

#include <metal_stdlib>
using namespace metal;

thread uint x_1 = 0u;
thread bool x_7 = false;
thread bool x_8 = false;
void main_1() {
  bool const x_101 = x_7;
  bool const x_102 = x_8;
  {
    while(true) {
      uint x_2 = 0u;
      if (x_101) {
        break;
      }
      x_2 = 0u;
      if (x_102) {
        x_2 = 1u;
        x_1 = x_2;
        continue;
      } else {
        x_1 = x_2;
        continue;
      }
      /* unreachable */
    }
  }
}
fragment void tint_symbol() {
  main_1();
}
program_source:4:13: error: program scope variable must reside in constant address space
thread uint x_1 = 0u;
            ^
program_source:5:13: error: program scope variable must reside in constant address space
thread bool x_7 = false;
            ^
program_source:6:13: error: program scope variable must reside in constant address space
thread bool x_8 = false;
            ^

