// RUN: %target-sil-opt %s -dump-access -o /dev/null | %FileCheck %s // REQUIRES: swift_in_compiler // Test is failing when targeting ARMv7k/ARM64_32. rdar://98669547 // UNSUPPORTED: CPU=armv7k || CPU=arm64_32 sil_stage raw import Builtin import Swift class List { var x: Builtin.Int64 let next: List } struct MoveOnlyPair: ~Copyable { var lhs: List var rhs: List } // CHECK-LABEL: Accesses for testMarkUnresolvedNonCopyableValueInst // CHECK-NEXT: Value: %5 = struct_element_addr %4 : $*MoveOnlyPair, #MoveOnlyPair.lhs // CHECK-NEXT: Scope: %4 = begin_access [modify] [static] %3 : $*MoveOnlyPair // CHECK-NEXT: Base: box - %2 = project_box %1 : ${ var MoveOnlyPair }, 0 // CHECK-NEXT: Path: "s0" // CHECK-NEXT: Storage: %1 = alloc_box ${ var MoveOnlyPair } // CHECK-NEXT: Path: "c0.s0" // CHECK-NEXT: Value: %6 = struct_element_addr %4 : $*MoveOnlyPair, #MoveOnlyPair.rhs // CHECK-NEXT: Scope: %4 = begin_access [modify] [static] %3 : $*MoveOnlyPair // CHECK-NEXT: Base: box - %2 = project_box %1 : ${ var MoveOnlyPair }, 0 // CHECK-NEXT: Path: "s1" // CHECK-NEXT: Storage: %1 = alloc_box ${ var MoveOnlyPair } // CHECK-NEXT: Path: "c0.s1" // CHECK-NEXT: End accesses for testMarkUnresolvedNonCopyableValueInst sil [ossa] @testMarkUnresolvedNonCopyableValueInst : $@convention(thin) (@guaranteed List) -> () { bb0(%0 : @guaranteed $List): %1 = alloc_box ${ var MoveOnlyPair } %2 = project_box %1 : ${ var MoveOnlyPair }, 0 %3 = mark_unresolved_non_copyable_value [consumable_and_assignable] %2 : $*MoveOnlyPair %3c = begin_access [modify] [static] %3 : $*MoveOnlyPair %3a = struct_element_addr %3c : $*MoveOnlyPair, #MoveOnlyPair.lhs %3b = struct_element_addr %3c : $*MoveOnlyPair, #MoveOnlyPair.rhs %0a = copy_value %0 : $List %0b = copy_value %0 : $List store %0a to [init] %3a : $*List store %0b to [init] %3b : $*List end_access %3c : $*MoveOnlyPair destroy_value %1 : ${ var MoveOnlyPair } %9999 = tuple() return %9999 : $() }