SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
  i:u32 @offset(0)
  j:u32 @offset(4)
}

InnerS = struct @align(4) {
  v:i32 @offset(0)
}

S1 = struct @align(4) {
  a2:array<InnerS, 8> @offset(0)
}

OuterS = struct @align(4) {
  a1:array<S1> @offset(0)
}

$B1: {  # root
  %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
  %s:ptr<storage, OuterS, read_write> = var @binding_point(0, 0)
}

%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %v:ptr<function, InnerS, read_write> = var
    %5:ptr<uniform, u32, read> = access %uniforms, 0u
    %6:u32 = load %5
    %7:ptr<uniform, u32, read> = access %uniforms, 1u
    %8:u32 = load %7
    %9:ptr<storage, InnerS, read_write> = access %s, 0u, %6, 0u, %8
    %10:InnerS = load %v
    store %9, %10
    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.  *
********************************************************************
