SKIP: FAILED

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

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

S1 = struct @align(4) {
  s2:InnerS @offset(0)
}

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

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

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