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