File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed
src/tools/miri/tests/pass/stacked-borrows Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ use std:: {
2
+ alloc:: { self , Layout } ,
3
+ mem:: ManuallyDrop ,
4
+ } ;
5
+
6
+ extern "Rust" {
7
+ fn miri_get_alloc_id ( ptr : * const u8 ) -> u64 ;
8
+ fn miri_print_stacks ( alloc_id : u64 ) ;
9
+ }
10
+
11
+ fn main ( ) {
12
+ let ptr = unsafe { alloc:: alloc ( Layout :: new :: < u8 > ( ) ) } ;
13
+ let alloc_id = unsafe { miri_get_alloc_id ( ptr) } ;
14
+ unsafe { miri_print_stacks ( alloc_id) } ;
15
+
16
+ assert ! ( !ptr. is_null( ) ) ;
17
+ unsafe { miri_print_stacks ( alloc_id) } ;
18
+
19
+ unsafe { * ptr = 42 } ;
20
+ unsafe { miri_print_stacks ( alloc_id) } ;
21
+
22
+ let _b = unsafe { ManuallyDrop :: new ( Box :: from_raw ( ptr) ) } ;
23
+ unsafe { miri_print_stacks ( alloc_id) } ;
24
+
25
+ let _ptr = unsafe { & * ptr } ;
26
+ unsafe { miri_print_stacks ( alloc_id) } ;
27
+
28
+ unsafe { alloc:: dealloc ( ptr, Layout :: new :: < u8 > ( ) ) } ;
29
+ }
Original file line number Diff line number Diff line change
1
+ 0..1: [ SharedReadWrite<2794> ]
2
+ 0..1: [ SharedReadWrite<2794> ]
3
+ 0..1: [ SharedReadWrite<2794> ]
4
+ 0..1: [ SharedReadWrite<2794> Unique<2822> Unique<2823> Unique<2824> Unique<2828> Unique<2830> ]
5
+ 0..1: [ SharedReadWrite<2794> Disabled<2822> Disabled<2823> Disabled<2824> Disabled<2828> Disabled<2830> SharedReadOnly<2832> ]
You can’t perform that action at this time.
0 commit comments