File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed
lib/SILOptimizer/Mandatory Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -77,8 +77,10 @@ bool AccessMarkerElimination::shouldPreserveAccess(
77
77
switch (enforcement) {
78
78
case SILAccessEnforcement::Static:
79
79
case SILAccessEnforcement::Unsafe:
80
- case SILAccessEnforcement::Signed:
81
80
return false ;
81
+ // Signed access should be preserved until IRGen
82
+ case SILAccessEnforcement::Signed:
83
+ return true ;
82
84
case SILAccessEnforcement::Unknown:
83
85
case SILAccessEnforcement::Dynamic:
84
86
return Mod->getOptions ().EnforceExclusivityDynamic ;
@@ -100,7 +102,7 @@ AccessMarkerElimination::checkAndEliminateMarker(SILInstruction *inst) {
100
102
if (beginAccess->isFromBuiltin ())
101
103
return inst->getIterator ();
102
104
103
- // Leave dynamic accesses in place, but delete all others.
105
+ // Leave dynamic and signed accesses in place, but delete all others.
104
106
if (shouldPreserveAccess (beginAccess->getEnforcement ()))
105
107
return inst->getIterator ();
106
108
You can’t perform that action at this time.
0 commit comments