SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentOutputs = struct @align(16) {
  loc0:i32 @offset(0), @location(0)
  frag_depth:f32 @offset(4), @builtin(frag_depth)
  loc1:u32 @offset(8), @location(1)
  loc2:f32 @offset(12), @location(2)
  sample_mask:u32 @offset(16), @builtin(sample_mask)
  loc3:vec4<f32> @offset(32), @location(3)
}

%tint_symbol = @fragment func():FragmentOutputs {
  $B1: {
    ret FragmentOutputs(1i, 2.0f, 1u, 1.0f, 2u, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f))
  }
}

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