You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is necessary to fix a recent OSSA bug that breaks common occurrences on
mark_dependence [nonescaping]. Rather than reverting that change above, we make
forward progress toward implicit borrows scopes, as was the original intention.
In the near future, all InteriorPointer instructions will create an implicit
borrow scope. This means we have the option of not emitting extraneous
begin/end_borrow instructions around intructions like ref_element_addr,
open_existential, and project_box. After that, we can also migrate
GuaranteedForwarding instructions like tuple_extract and struct_extract.
Copy file name to clipboardExpand all lines: SwiftCompilerSources/Sources/SIL/Operand.swift
+9-2Lines changed: 9 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -268,7 +268,11 @@ public enum OperandOwnership {
268
268
/// Interior Pointer. Propagates a trivial value (e.g. address, pointer, or no-escape closure) that depends on the guaranteed value within the base's borrow scope. The verifier checks that all uses of the trivial
269
269
/// value are in scope. (ref_element_addr, open_existential_box)
270
270
case interiorPointer
271
-
271
+
272
+
/// Any Interior Pointer. An interior pointer that allows any operand ownership. This will be removed as soon as SIL
273
+
/// migrates away from extraneous borrow scopes.
274
+
case anyInteriorPointer
275
+
272
276
/// Forwarded Borrow. Propagates the guaranteed value within the base's borrow scope. (tuple_extract, struct_extract, cast, switch)
273
277
case guaranteedForwarding
274
278
@@ -282,7 +286,7 @@ public enum OperandOwnership {
0 commit comments