about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-07-12 10:19:42 +0000
committerbors <bors@rust-lang.org>2023-07-12 10:19:42 +0000
commit136dab66142115d9de16b4cfe2d8395d71a8ab6d (patch)
tree966cbfd788c367b9efe03e40625b4645fec5cc7c /compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp
parent910be1b3e83d8876a144441695b7a5077967296e (diff)
parente7c6db7d44b8627b9b3b1106fc08413c52fbabaa (diff)
downloadrust-136dab66142115d9de16b4cfe2d8395d71a8ab6d.tar.gz
rust-136dab66142115d9de16b4cfe2d8395d71a8ab6d.zip
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`
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp')
0 files changed, 0 insertions, 0 deletions