SKIP: FAILED

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

thread int x_4 = 0;
thread float4 position_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 {.position_1_1=position_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 position_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 [[]]) {
                            ^~~~~~~~~~~~~~

