SKIP: FAILED

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

$B1: {  # root
  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
}

%foo = func():i32 {
  $B2: {
    %src:array<i32, 4> = let array<i32, 4>(0i)
    %dst:ptr<function, array<i32, 4>, read_write> = var
    %dst_struct:ptr<function, S, read_write> = var
    %dst_array:ptr<function, array<array<i32, 4>, 2>, read_write> = var
    %dst_ptr:ptr<function, array<i32, 4>, read_write> = let %dst
    %dst_struct_ptr:ptr<function, S, read_write> = let %dst_struct
    %dst_array_ptr:ptr<function, array<array<i32, 4>, 2>, read_write> = let %dst_array
    %10:ptr<function, array<i32, 4>, read_write> = access %dst_struct, 0u
    store %10, %src
    %11:ptr<function, array<i32, 4>, read_write> = access %dst_array, 1i
    store %11, %src
    store %dst_ptr, %src
    %12:ptr<function, array<i32, 4>, read_write> = access %dst_struct_ptr, 0u
    store %12, %src
    %13:ptr<function, array<i32, 4>, read_write> = access %dst_array_ptr, 0i
    store %13, %src
    %14:ptr<function, i32, read_write> = access %dst_ptr, 0i
    %15:i32 = load %14
    %16:ptr<function, i32, read_write> = access %dst_struct_ptr, 0u, 0i
    %17:i32 = load %16
    %18:i32 = add %15, %17
    %19:ptr<function, i32, read_write> = access %dst_array_ptr, 0i, 0i
    %20:i32 = load %19
    %21:i32 = add %18, %20
    ret %21
  }
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
  $B3: {
    %23:i32 = call %foo
    store %s, %23
    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.  *
********************************************************************
