diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-12-08 12:57:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-08 12:57:30 +0100 |
| commit | f1f7560598f2543ecc33bd4c1c013a4e76d8f50c (patch) | |
| tree | 4cffff2042ca13f643a7d8dbd2a19b33bcc33c3b /compiler/rustc_mir_transform/src/coverage/graph.rs | |
| parent | e826a9acb4cab272af819da07f32df0514c4ad66 (diff) | |
| parent | 34c58e897fc6336e31da9c7d6301a1c3520a5cde (diff) | |
| download | rust-f1f7560598f2543ecc33bd4c1c013a4e76d8f50c.tar.gz rust-f1f7560598f2543ecc33bd4c1c013a4e76d8f50c.zip | |
Rollup merge of #105317 - RalfJung:retag-rework, r=oli-obk
make retagging work even with 'unstable' places This is based on top of https://github.com/rust-lang/rust/pull/105301. Only the last two commits are new. While investigating https://github.com/rust-lang/unsafe-code-guidelines/issues/381 I realized that we would have caught this issue much earlier if the add_retag pass wouldn't bail out on assignments of the form `*ptr = ...`. So this PR changes our retag strategy: - When a new reference is created via `Rvalue::Ref` (or a raw ptr via `Rvalue::AddressOf`), we do the retagging as part of just executing that address-taking operation. - For everything else, we still insert retags -- these retags basically serve to ensure that references stored in local variables (and their fields) are always freshly tagged, so skipping this for assignments like `*ptr = ...` is less egregious. r? ```@oli-obk```
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/graph.rs')
0 files changed, 0 insertions, 0 deletions
