SKIP: FAILED

#include <metal_stdlib>
using namespace metal;
struct main_out {
  float4 x_1_1 [[position]];
};

thread int x_4 = 0;
thread float4 x_1 = 0.0f;
void main_1() {
  int const x_2 = x_4;
}
vertex main_out tint_symbol(uint x_4_param [[]]) {
  x_4 = as_type<int>(x_4_param);
  main_1();
  return {.x_1_1=x_1};
}
program_source:7:12: error: program scope variable must reside in constant address space
thread int x_4 = 0;
           ^
program_source:8:15: error: program scope variable must reside in constant address space
thread float4 x_1 = 0.0f;
              ^
program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
  int const x_2 = x_4;
            ^
program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
vertex main_out tint_symbol(uint x_4_param [[]]) {
                            ^~~~~~~~~~~~~~

