summaryrefslogtreecommitdiff
path: root/src/tools/miri/tests/fail/tree-borrows/reserved/cell-protected-write.stderr
blob: 8ae1c09470a57e0f01572f46db8313d926e91387 (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
──────────────────────────────────────────────────────────────────────
Warning: this tree is indicative only. Some tags may have been hidden.
0..  1
| Re*|    └─┬──<TAG=base>
| Re*|      ├─┬──<TAG=x>
| Re*|      │ └─┬──<TAG=caller:x>
| Re*|      │   └────<TAG=callee:x> Strongly protected
| Re*|      └────<TAG=y,callee:y,caller:y>
──────────────────────────────────────────────────────────────────────
error: Undefined Behavior: write access through <TAG> (also named 'y,callee:y,caller:y') is forbidden because it is a foreign tag for <TAG> (also named 'callee:x'), which would hence change from Reserved to Disabled, but <TAG> (also named 'callee:x') is protected
  --> $DIR/cell-protected-write.rs:LL:CC
   |
LL |             *y = 1;
   |             ^^^^^^ write access through <TAG> (also named 'y,callee:y,caller:y') is forbidden because it is a foreign tag for <TAG> (also named 'callee:x'), which would hence change from Reserved to Disabled, but <TAG> (also named 'callee:x') is protected
   |
   = help: this indicates a potential bug in the program: it performed an invalid operation, but the Tree Borrows rules it violated are still experimental
   = note: BACKTRACE:
   = note: inside `main::write_second` at $DIR/cell-protected-write.rs:LL:CC
note: inside `main`
  --> $DIR/cell-protected-write.rs:LL:CC
   |
LL |         write_second(x, y);
   |         ^^^^^^^^^^^^^^^^^^

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

error: aborting due to previous error