SKIP: FAILED

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

$B1: {  # root
  %pos:ptr<private, vec4<f32>, read_write> = var
  %frag_color:ptr<private, vec4<f32>, read_write> = var
  %gl_Position:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %5:vec4<f32> = load %pos
    %x_21:vec4<f32> = let %5
    store %gl_Position, %x_21
    %7:vec4<f32> = load %pos
    %x_23:vec4<f32> = let %7
    %9:vec4<f32> = mul %x_23, 0.5f
    store %frag_color, %9
    ret
  }
}
%tint_symbol = @vertex func(%position_param:vec4<f32> [@location(0)]):main_out {
  $B3: {
    store %pos, %position_param
    %12:void = call %main_1
    %13:vec4<f32> = load %gl_Position
    %14:vec4<f32> = load %frag_color
    %15:main_out = construct %13, %14
    ret %15
  }
}

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