summaryrefslogtreecommitdiff
path: root/src/tools/miri/tests/fail/tree-borrows/outside-range.stderr
blob: 14696c704fc1b8e6beb10a1d6d2b64c89a44d7aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
error: Undefined Behavior: write access through <TAG> is forbidden
  --> $DIR/outside-range.rs:LL:CC
   |
LL |     *y.add(3) = 42;
   |     ^^^^^^^^^^^^^^ write access through <TAG> is forbidden
   |
   = help: this indicates a potential bug in the program: it performed an invalid operation, but the Tree Borrows rules it violated are still experimental
   = help: the accessed tag <TAG> is foreign to the protected tag <TAG> (i.e., it is not a child)
   = help: the access would cause the protected tag <TAG> to transition from Reserved to Disabled
   = help: this is a loss of read and write permissions, which is not allowed for protected tags
help: the accessed tag <TAG> was created here
  --> $DIR/outside-range.rs:LL:CC
   |
LL |         let raw = data.as_mut_ptr();
   |                   ^^^^^^^^^^^^^^^^^
help: the protected tag <TAG> was created here, in the initial state Reserved
  --> $DIR/outside-range.rs:LL:CC
   |
LL | unsafe fn stuff(x: &mut u8, y: *mut u8) {
   |                 ^
   = note: BACKTRACE (of the first span):
   = note: inside `stuff` at $DIR/outside-range.rs:LL:CC
note: inside `main`
  --> $DIR/outside-range.rs:LL:CC
   |
LL |         stuff(&mut *raw, raw);
   |         ^^^^^^^^^^^^^^^^^^^^^

note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

error: aborting due to previous error