SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
  field0:vec4<f32> @offset(0)
}

S_1 = struct @align(16) {
  field0:vec4<f32> @offset(0)
}

main_out = struct @align(16) {
  x_3_1:vec4<f32> @offset(0), @location(0)
}

$B1: {  # root
  %x_3:ptr<private, vec4<f32>, read_write> = var
  %x_5:ptr<uniform, S, read> = var @binding_point(0, 0)
}

%main_1 = func():void {
  $B2: {
    %4:ptr<uniform, vec4<f32>, read> = access %x_5, 0u
    %5:vec4<f32> = load %4
    %x_20:vec4<f32> = let %5
    %x_21_1:ptr<function, S_1, read_write> = var, S_1(vec4<f32>(0.0f))
    %8:ptr<function, vec4<f32>, read_write> = access %x_21_1, 0u
    store %8, %x_20
    %9:S_1 = load %x_21_1
    %x_21:S_1 = let %9
    %11:vec4<f32> = access %x_21, 0u
    store %x_3, %11
    ret
  }
}
%tint_symbol = @fragment func():main_out {
  $B3: {
    %13:void = call %main_1
    %14:vec4<f32> = load %x_3
    %15:main_out = construct %14
    ret %15
  }
}

unhandled variable address space
********************************************************************
*  The tint shader compiler has encountered an unexpected error.   *
*                                                                  *
*  Please help us fix this issue by submitting a bug report at     *
*  crbug.com/tint with the source program that triggered the bug.  *
********************************************************************
