7fafbde038
Enable permissive provenance by default This completes the plan laid out in https://github.com/rust-lang/miri/issues/2133: - We use permissive provenance with wildcard pointers by default. - We print a warning on int2ptr casts. `-Zmiri-permissive-provenance` suppresses the warning; `-Zmiri-strict-provenance` turns it into a hard error. - Raw pointer tagging is now always enabled, so we remove the `-Zmiri-tag-raw-pointers` flag and the code for untagged pointers. (Passing the flag still works, for compatibility -- but we just ignore it, with a warning.) We also fix an intptrcast issue: - Only live allocations are considered when computing the AllocId from an address. So, finally, Miri has a good story for ptr2int2ptr roundtrips *and* no weird false negatives when doing raw pointer stuff with Stacked Borrows. :-) 🎉 Thanks a lot to everyone who helped with this, in particular `@carbotaniuman` who convinced me this is even possible. Fixes https://github.com/rust-lang/miri/issues/2133 Fixes https://github.com/rust-lang/miri/issues/1866 Fixes https://github.com/rust-lang/miri/issues/1993 |
||
---|---|---|
.. | ||
channels.rs | ||
concurrent_caller_location.rs | ||
data_race.rs | ||
disable_data_race_detector.rs | ||
issue1643.rs | ||
libc_pthread_cond.rs | ||
linux-futex.rs | ||
mutex_leak.rs | ||
simple.rs | ||
simple.stderr | ||
spin_loop.rs | ||
spin_loops_nopreempt.rs | ||
spin_loops.stderr | ||
sync_nopreempt.rs | ||
sync_singlethread.rs | ||
sync.rs | ||
sync.stdout | ||
thread_locals.rs | ||
tls_lib_drop_single_thread.rs | ||
tls_lib_drop_single_thread.stderr | ||
tls_lib_drop.rs | ||
tls_lib_drop.stdout | ||
tls_pthread_drop_order.rs |