SKIP: FAILED

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

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

%main_1 = func():void {
  $B2: {
    store %outColor, vec4<f32>(0.0f)
    store %gl_FragDepth, 0.10000000149011611938f
    ret
  }
}
%tint_symbol = @fragment func():main_out {
  $B3: {
    %5:void = call %main_1
    %6:vec4<f32> = load %outColor
    %7:f32 = load %gl_FragDepth
    %8:main_out = construct %6, %7
    ret %8
  }
}

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.  *
********************************************************************
