Skip to content

Commit e5af344

Browse files
committed
TB: fix SIFA comment
1 parent 3358569 commit e5af344

File tree

1 file changed

+12
-12
lines changed
  • src/borrow_tracker/tree_borrows

1 file changed

+12
-12
lines changed

src/borrow_tracker/tree_borrows/mod.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -298,18 +298,18 @@ trait EvalContextPrivExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
298298

299299
// When adding a new node, the SIFA of its parents needs to be updated, potentially across
300300
// the entire memory range. For the parts that are being accessed below, the access itself
301-
// trivially takes care of that. However, we have to do some more work to also deal with
302-
// the parts that are not being accessed. Specifically what we do is that we
303-
// call `update_last_accessed_after_retag` on the SIFA of the permission set for the part of
304-
// memory outside `perm_map` -- so that part is definitely taken care of. The remaining concern
305-
// is the part of memory that is in the range of `perms_map`, but not accessed below.
306-
// There we have two cases:
307-
// * If we do have an `UnsafeCell` (`has_unsafe_cell` becomes true), then the non-accessed part
308-
// uses `nonfreeze_perm`, so the `nonfreeze_perm` initialized parts are also fine. We enforce
309-
// the `freeze_perm` parts to be accessed, and thus everything is taken care of.
310-
// * If there is no `UnsafeCell`, then `freeze_perm` is used everywhere (both inside and outside the initial range),
311-
// and we update everything to have the `freeze_perm`'s SIFA, so there are no issues. (And this assert below is not
312-
// actually needed in this case).
301+
// trivially takes care of that. However, we have to do some more work to also deal with the
302+
// parts that are not being accessed. Specifically what we do is that we call
303+
// `update_last_accessed_after_retag` on the SIFA of the permission set for the part of
304+
// memory outside `perm_map` -- so that part is definitely taken care of. The remaining
305+
// concern is the part of memory that is in the range of `perms_map`, but not accessed
306+
// below. There we have two cases:
307+
// * If the type is `!Freeze`, then the non-accessed part uses `nonfreeze_perm`, so the
308+
// `nonfreeze_perm` initialized parts are also fine. We enforce the `freeze_perm` parts to
309+
// be accessed via the assert below, and thus everything is taken care of.
310+
// * If the type is `Freeze`, then `freeze_perm` is used everywhere (both inside and outside
311+
// the initial range), and we update everything to have the `freeze_perm`'s SIFA, so there
312+
// are no issues. (And this assert below is not actually needed in this case).
313313
assert!(new_perm.freeze_access);
314314

315315
let protected = new_perm.protector.is_some();

0 commit comments

Comments
 (0)