]> git.lizzy.rs Git - rust.git/commitdiff
tweaks to retag diagnostic handling
authorRalf Jung <post@ralfj.de>
Mon, 2 Jan 2023 15:05:49 +0000 (16:05 +0100)
committerRalf Jung <post@ralfj.de>
Mon, 2 Jan 2023 15:05:49 +0000 (16:05 +0100)
src/tools/miri/src/borrow_tracker/stacked_borrows/diagnostics.rs
src/tools/miri/src/borrow_tracker/stacked_borrows/mod.rs
src/tools/miri/tests/fail/stacked_borrows/aliasing_mut3.stderr
src/tools/miri/tests/fail/stacked_borrows/fnentry_invalidation.stderr
src/tools/miri/tests/fail/stacked_borrows/fnentry_invalidation2.stderr

index 5f132bf11a92ae5758f5443f33af30ee371a8a61..2cc8f03546602a880a7225ffcb6e938738cb8360 100644 (file)
@@ -88,11 +88,7 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
         match self {
             InvalidationCause::Access(kind) => write!(f, "{kind}"),
             InvalidationCause::Retag(perm, kind) =>
-                if *kind == RetagCause::FnEntry {
-                    write!(f, "{perm:?} FnEntry retag")
-                } else {
-                    write!(f, "{perm:?} retag")
-                },
+                write!(f, "{perm:?} {retag}", retag = kind.summary()),
         }
     }
 }
@@ -193,7 +189,7 @@ struct RetagOp {
 #[derive(Debug, Clone, Copy, PartialEq)]
 pub enum RetagCause {
     Normal,
-    FnReturn,
+    FnReturnPlace,
     FnEntry,
     TwoPhase,
 }
@@ -495,8 +491,8 @@ impl RetagCause {
     fn summary(&self) -> String {
         match self {
             RetagCause::Normal => "retag",
-            RetagCause::FnEntry => "FnEntry retag",
-            RetagCause::FnReturn => "FnReturn retag",
+            RetagCause::FnEntry => "function-entry retag",
+            RetagCause::FnReturnPlace => "return-place retag",
             RetagCause::TwoPhase => "two-phase retag",
         }
         .to_string()
index bcdf2e751790e5bfdb385c661e344a3deace216b..ec555ba2895c8468b82bcaae0008fcfb34b13ad0 100644 (file)
@@ -998,7 +998,7 @@ fn sb_retag_return_place(&mut self) -> InterpResult<'tcx> {
             access: Some(AccessKind::Write),
             protector: Some(ProtectorKind::StrongProtector),
         };
-        let val = this.sb_retag_reference(&val, new_perm, RetagCause::FnReturn)?;
+        let val = this.sb_retag_reference(&val, new_perm, RetagCause::FnReturnPlace)?;
         // And use reborrowed pointer for return place.
         let return_place = this.ref_to_mplace(&val)?;
         this.frame_mut().return_place = return_place.into();
index 55aaed62f4f5f8d8c9939c335fcdf4efa8548f49..ae54d0248dc3d5689138062084612fa6317a4fcc 100644 (file)
@@ -5,7 +5,7 @@ LL | pub fn safe(_x: &mut i32, _y: &i32) {}
    |                           ^^
    |                           |
    |                           trying to retag from <TAG> for SharedReadOnly permission at ALLOC[0x0], but that tag does not exist in the borrow stack for this location
-   |                           this error occurs as part of FnEntry retag at ALLOC[0x0..0x4]
+   |                           this error occurs as part of function-entry retag at ALLOC[0x0..0x4]
    |
    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
@@ -14,7 +14,7 @@ help: <TAG> was created by a SharedReadOnly retag at offsets [0x0..0x4]
    |
 LL |     safe_raw(xraw, xshr);
    |                    ^^^^
-help: <TAG> was later invalidated at offsets [0x0..0x4] by a Unique FnEntry retag inside this call
+help: <TAG> was later invalidated at offsets [0x0..0x4] by a Unique function-entry retag inside this call
   --> $DIR/aliasing_mut3.rs:LL:CC
    |
 LL |     safe_raw(xraw, xshr);
index e3bffde1f0176c337c1ca5fab767dcddb0291a18..236c8fb0187de7b3a0ad90807f243bcf44a8bf45 100644 (file)
@@ -14,7 +14,7 @@ help: <TAG> was created by a SharedReadWrite retag at offsets [0x0..0x4]
    |
 LL |     let z = &mut x as *mut i32;
    |             ^^^^^^
-help: <TAG> was later invalidated at offsets [0x0..0x4] by a Unique FnEntry retag inside this call
+help: <TAG> was later invalidated at offsets [0x0..0x4] by a Unique function-entry retag inside this call
   --> $DIR/fnentry_invalidation.rs:LL:CC
    |
 LL |     x.do_bad();
index b104de4b8d94d2b02e6ea1257bbfa2ee8ee4a817..45c2197050a1bd16e0a0bb161cf136e54402ae14 100644 (file)
@@ -14,7 +14,7 @@ help: <TAG> was created by a SharedReadOnly retag at offsets [0x0..0xc]
    |
 LL |     let ptr = t.sli.as_ptr();
    |               ^^^^^^^^^^^^^^
-help: <TAG> was later invalidated at offsets [0x0..0xc] by a Unique FnEntry retag inside this call
+help: <TAG> was later invalidated at offsets [0x0..0xc] by a Unique function-entry retag inside this call
   --> $DIR/fnentry_invalidation2.rs:LL:CC
    |
 LL |     let _ = t.sli.as_mut_ptr();