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