mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
switch_enum_addr was being treated like a store instruction, which killed the local enum's liveness. This could result local variable analysis reporting a shorter lifetime for the local. This showed up as a missing exclusivity diagnostic because an access scope was not fully extended across a dependent local variable of Optional type. This prevents the following pattern from miscompiling. It should report an exclusivity violation: var mutableView = getOpaqueOptionalView(holder: &holder)! mutate(&holder) mutableView.modify() Fixes rdar://151231236 ([~Escapable] Missing 'overlapping acceses' error when called from client code, but exact same code produces error in same module)
42 KiB
42 KiB