SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
  %tex:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(0, 2)
}

%foo = func():void {
  $B2: {
    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
      $B3: {  # initializer
        %i:ptr<function, i32, read_write> = var, 0i
        next_iteration  # -> $B4
      }
      $B4: {  # body
        %4:i32 = load %i
        %5:bool = lt %4, 3i
        if %5 [t: $B6, f: $B7] {  # if_1
          $B6: {  # true
            exit_if  # if_1
          }
          $B7: {  # false
            exit_loop  # loop_1
          }
        }
        continue  # -> $B5
      }
      $B5: {  # continuing
        %6:texture_storage_2d<r32sint, read_write> = load %tex
        %7:void = textureStore %6, vec2<i32>(0i), vec4<i32>(0i)
        next_iteration  # -> $B4
      }
    }
    ret
  }
}

invalid access control for storage texture
********************************************************************
*  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.  *
********************************************************************
