rust/compiler/rustc_middle
bors 136dab6614 Auto merge of #113569 - RalfJung:miri, r=oli-obk
miri: protect Move() function arguments during the call

This gives `Move` operands a meaning specific to function calls:
- for the duration of the call, the place the operand comes from is protected, making all read and write accesses insta-UB.
- the contents of that place are reset to `Uninit`, so looking at them again after the function returns, we cannot observe their contents

Turns out we can replace the existing "retag return place" hack with the exact same sort of protection on the return place, which is nicely symmetric.

Fixes https://github.com/rust-lang/rust/issues/112564
Fixes https://github.com/rust-lang/miri/issues/2927

This starts with a Miri rustc-push, since we'd otherwise conflict with a PR that recently landed in Miri.
(The "miri tree borrows" commit is an unrelated cleanup I noticed while doing the PR. I can remove it if you prefer.)
r? `@oli-obk`
2023-07-12 10:19:42 +00:00
..
src Auto merge of #113569 - RalfJung:miri, r=oli-obk 2023-07-12 10:19:42 +00:00
Cargo.toml Remove chalk from the compiler 2023-07-03 21:40:04 +00:00
messages.ftl Use translatable diagnostics in rustc_const_eval 2023-06-01 14:45:18 +00:00
README.md

For more information about how rustc works, see the rustc dev guide.