SKIP: FAILED

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

main_out = struct @align(16) {
  x_1_1:f32 @offset(0), @location(9)
  x_1_2:vec4<f32> @offset(16), @location(10)
  x_2_1:vec4<f32> @offset(32), @builtin(position)
}

$B1: {  # root
  %x_1:ptr<private, Communicators, read_write> = var
  %x_2:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    ret
  }
}
%tint_symbol = @vertex func():main_out {
  $B3: {
    %5:void = call %main_1
    %6:ptr<private, f32, read_write> = access %x_1, 0u
    %7:f32 = load %6
    %8:ptr<private, vec4<f32>, read_write> = access %x_1, 1u
    %9:vec4<f32> = load %8
    %10:vec4<f32> = load %x_2
    %11:main_out = construct %7, %9, %10
    ret %11
  }
}

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