SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
  arr:array<i32, 4> @offset(0)
}

$B1: {  # root
  %S:ptr<storage, str, read> = var @binding_point(0, 0)
}

%func = func(%pointer:ptr<storage, array<i32, 4>, read>):array<i32, 4> {
  $B2: {
    %4:array<i32, 4> = load %pointer
    ret %4
  }
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
  $B3: {
    %6:ptr<storage, array<i32, 4>, read> = access %S, 0u
    %7:array<i32, 4> = call %func, %6
    %r:array<i32, 4> = let %7
    ret
  }
}

unhandled variable address space
********************************************************************
*  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.  *
********************************************************************
