SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
}

$B1: {  # root
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %x_30:ptr<function, f32, read_write> = var
    %foo:ptr<function, u32, read_write> = var
    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
    %6:f32 = load_vector_element %gl_FragCoord, 0u
    %x_32:f32 = let %6
    %8:bool = gt %x_32, -1.0f
    if %8 [t: $B3, f: $B4] {  # if_1
      $B3: {  # true
        %9:f32 = load_vector_element %x_GLF_color, 0u
        %x_38:f32 = let %9
        store %x_30, %x_38
        exit_if  # if_1
      }
      $B4: {  # false
        %11:u32 = load %foo
        %x_6:u32 = let %11
        %13:u32 = sub %x_6, 1u
        %x_7:u32 = let %13
        store %foo, %x_7
        %15:u32 = add 178493u, %x_7
        %16:f32 = convert %15
        store %x_30, %16
        exit_if  # if_1
      }
    }
    %17:f32 = load %x_30
    %x_40:f32 = let %17
    store_vector_element %x_GLF_color, 0u, %x_40
    ret
  }
}
%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
  $B5: {
    store %gl_FragCoord, %gl_FragCoord_param
    %21:void = call %main_1
    %22:vec4<f32> = load %x_GLF_color
    %23:main_out = construct %22
    ret %23
  }
}

invalid entry point IO struct uses
********************************************************************
*  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.  *
********************************************************************
