File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -56,6 +56,13 @@ bool swift::findPointerEscape(SILValue original) {
56
56
worklist.pushIfNotVisited (phi);
57
57
break ;
58
58
}
59
+ case OperandOwnership::Borrow: {
60
+ auto borrowOp = BorrowingOperand (use);
61
+ if (auto borrowValue = borrowOp.getBorrowIntroducingUserResult ()) {
62
+ worklist.pushIfNotVisited (borrowValue.value );
63
+ }
64
+ break ;
65
+ }
59
66
case OperandOwnership::Reborrow: {
60
67
SILArgument *phi = PhiOperand (use).getValue ();
61
68
worklist.pushIfNotVisited (phi);
@@ -72,6 +79,13 @@ bool swift::findPointerEscape(SILValue original) {
72
79
});
73
80
break ;
74
81
}
82
+ case OperandOwnership::InteriorPointer: {
83
+ if (InteriorPointerOperand (use).findTransitiveUses () !=
84
+ AddressUseKind::NonEscaping) {
85
+ return true ;
86
+ }
87
+ break ;
88
+ }
75
89
default :
76
90
break ;
77
91
}
You can’t perform that action at this time.
0 commit comments