You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
error: Undefined Behavior: write access through <TAG> is forbidden
2
+
--> $DIR/children-can-alias.rs:LL:CC
3
+
|
4
+
LL | child2.write(2);
5
+
| ^^^^^^^^^^^^^^^ write access through <TAG> is forbidden
6
+
|
7
+
= help: this indicates a potential bug in the program: it performed an invalid operation, but the Tree Borrows rules it violated are still experimental
8
+
= help: the accessed tag <TAG> is a child of the conflicting tag <TAG>
9
+
= help: the conflicting tag <TAG> has state Disabled which forbids this child write access
10
+
help: the accessed tag <TAG> was created here
11
+
--> $DIR/children-can-alias.rs:LL:CC
12
+
|
13
+
LL | let child2 = x.as_ptr();
14
+
| ^^^^^^^^^^
15
+
help: the conflicting tag <TAG> was created here, in the initial state Reserved
16
+
--> $DIR/children-can-alias.rs:LL:CC
17
+
|
18
+
LL | let child2 = x.as_ptr();
19
+
| ^
20
+
help: the conflicting tag <TAG> later transitioned to Disabled due to a foreign write access at offsets [0x0..0x1]
21
+
--> $DIR/children-can-alias.rs:LL:CC
22
+
|
23
+
LL | child1.write(1);
24
+
| ^^^^^^^^^^^^^^^
25
+
= help: this transition corresponds to a loss of read and write permissions
26
+
= note: BACKTRACE (of the first span):
27
+
= note: inside `raw_children_of_unique_can_alias` at $DIR/children-can-alias.rs:LL:CC
error: Undefined Behavior: write access through <TAG> is forbidden
2
+
--> $DIR/unique.rs:LL:CC
3
+
|
4
+
LL | *uniq.as_ptr() = 3;
5
+
| ^^^^^^^^^^^^^^^^^^ write access through <TAG> is forbidden
6
+
|
7
+
= help: this indicates a potential bug in the program: it performed an invalid operation, but the Tree Borrows rules it violated are still experimental
8
+
= help: the accessed tag <TAG> has state Frozen which forbids this child write access
9
+
help: the accessed tag <TAG> was created here, in the initial state Reserved
10
+
--> $DIR/unique.rs:LL:CC
11
+
|
12
+
LL | let refmut = &mut data;
13
+
| ^^^^^^^^^
14
+
help: the accessed tag <TAG> later transitioned to Active due to a child write access at offsets [0x0..0x1]
15
+
--> $DIR/unique.rs:LL:CC
16
+
|
17
+
LL | *uniq.as_ptr() = 1; // activation
18
+
| ^^^^^^^^^^^^^^^^^^
19
+
= help: this transition corresponds to the first write to a 2-phase borrowed mutable reference
20
+
help: the accessed tag <TAG> later transitioned to Frozen due to a foreign read access at offsets [0x0..0x1]
21
+
--> $DIR/unique.rs:LL:CC
22
+
|
23
+
LL | let _definitely_parent = data; // definitely Frozen by now
24
+
| ^^^^
25
+
= help: this transition corresponds to a loss of write permissions
26
+
= note: BACKTRACE (of the first span):
27
+
= note: inside `main` at $DIR/unique.rs:LL:CC
28
+
29
+
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
error: Undefined Behavior: write access through <TAG> is forbidden
2
+
--> $DIR/unique.rs:LL:CC
3
+
|
4
+
LL | *uniq.as_ptr() = 2;
5
+
| ^^^^^^^^^^^^^^^^^^ write access through <TAG> is forbidden
6
+
|
7
+
= help: this indicates a potential bug in the program: it performed an invalid operation, but the Tree Borrows rules it violated are still experimental
8
+
= help: the accessed tag <TAG> is a child of the conflicting tag <TAG>
9
+
= help: the conflicting tag <TAG> has state Frozen which forbids this child write access
10
+
help: the accessed tag <TAG> was created here
11
+
--> $DIR/unique.rs:LL:CC
12
+
|
13
+
LL | *uniq.as_ptr() = 2;
14
+
| ^^^^^^^^^^^^^
15
+
help: the conflicting tag <TAG> was created here, in the initial state Reserved
16
+
--> $DIR/unique.rs:LL:CC
17
+
|
18
+
LL | let uniq = Unique::new_unchecked(rawptr);
19
+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20
+
help: the conflicting tag <TAG> later transitioned to Active due to a child write access at offsets [0x0..0x1]
21
+
--> $DIR/unique.rs:LL:CC
22
+
|
23
+
LL | *uniq.as_ptr() = 1; // activation
24
+
| ^^^^^^^^^^^^^^^^^^
25
+
= help: this transition corresponds to the first write to a 2-phase borrowed mutable reference
26
+
help: the conflicting tag <TAG> later transitioned to Frozen due to a foreign read access at offsets [0x0..0x1]
27
+
--> $DIR/unique.rs:LL:CC
28
+
|
29
+
LL | let _maybe_parent = *rawptr; // maybe becomes Frozen
30
+
| ^^^^^^^
31
+
= help: this transition corresponds to a loss of write permissions
32
+
= note: BACKTRACE (of the first span):
33
+
= note: inside `main` at $DIR/unique.rs:LL:CC
34
+
35
+
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
0 commit comments