File tree Expand file tree Collapse file tree 2 files changed +62
-0
lines changed Expand file tree Collapse file tree 2 files changed +62
-0
lines changed Original file line number Diff line number Diff line change 1+ #![ feature( start) ]
2+ #![ no_std]
3+ //@compile-flags: -Zmiri-track-alloc-id=17 -Zmiri-track-alloc-accesses -Cpanic=abort
4+ //@only-target-linux: alloc IDs differ between OSes for some reason
5+
6+ extern "Rust" {
7+ fn miri_alloc ( size : usize , align : usize ) -> * mut u8 ;
8+ fn miri_dealloc ( ptr : * mut u8 , size : usize , align : usize ) ;
9+ }
10+
11+ #[ start]
12+ fn start ( _: isize , _: * const * const u8 ) -> isize {
13+ unsafe {
14+ let ptr = miri_alloc ( 123 , 1 ) ;
15+ * ptr = 42 ; // Crucially, only a write is printed here, no read!
16+ assert_eq ! ( * ptr, 42 ) ;
17+ miri_dealloc ( ptr, 123 , 1 ) ;
18+ }
19+ 0
20+ }
21+
22+ #[ panic_handler]
23+ fn panic_handler ( _: & core:: panic:: PanicInfo ) -> ! {
24+ loop { }
25+ }
Original file line number Diff line number Diff line change 1+ note: tracking was triggered
2+ --> $DIR/alloc-access-tracking.rs:LL:CC
3+ |
4+ LL | let ptr = miri_alloc(123, 1);
5+ | ^^^^^^^^^^^^^^^^^^ created Miri bare-metal heap allocation of 123 bytes (alignment ALIGN bytes) with id 17
6+ |
7+ = note: BACKTRACE:
8+ = note: inside `start` at $DIR/alloc-access-tracking.rs:LL:CC
9+
10+ note: tracking was triggered
11+ --> $DIR/alloc-access-tracking.rs:LL:CC
12+ |
13+ LL | *ptr = 42; // Crucially, only a write is printed here, no read!
14+ | ^^^^^^^^^ write access to allocation with id 17
15+ |
16+ = note: BACKTRACE:
17+ = note: inside `start` at $DIR/alloc-access-tracking.rs:LL:CC
18+
19+ note: tracking was triggered
20+ --> $DIR/alloc-access-tracking.rs:LL:CC
21+ |
22+ LL | assert_eq!(*ptr, 42);
23+ | ^^^^^^^^^^^^^^^^^^^^ read access to allocation with id 17
24+ |
25+ = note: BACKTRACE:
26+ = note: inside `start` at RUSTLIB/core/src/macros/mod.rs:LL:CC
27+ = note: this note originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
28+
29+ note: tracking was triggered
30+ --> $DIR/alloc-access-tracking.rs:LL:CC
31+ |
32+ LL | miri_dealloc(ptr, 123, 1);
33+ | ^^^^^^^^^^^^^^^^^^^^^^^^^ freed allocation with id 17
34+ |
35+ = note: BACKTRACE:
36+ = note: inside `start` at $DIR/alloc-access-tracking.rs:LL:CC
37+
You can’t perform that action at this time.
0 commit comments