rust/src
Matthias Krüger f1f7560598
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```
2022-12-08 12:57:30 +01:00
..
bootstrap Rollup merge of #104439 - ferrocene:pa-generate-copyright, r=pnkfelix 2022-12-06 13:27:40 +01:00
ci Update the wasi toolchain. 2022-12-06 13:13:11 -08:00
doc unstable-book: Add ignore to abi_efiapi example code 2022-12-06 14:45:38 -05:00
etc Fix natvis VecDeque formatter 2022-11-27 18:09:56 +01:00
librustdoc Rollup merge of #105403 - notriddle:notriddle/item-stab-css, r=GuillaumeGomez 2022-12-07 15:39:09 +01:00
llvm-project@3dfd4d93fa Update LLVM submodule 2022-12-07 08:40:49 +01:00
rustdoc-json-types Rollup merge of #103065 - aDotInTheVoid:rdj-arg-pattern, r=GuillaumeGomez 2022-11-30 19:53:17 +01:00
test Rollup merge of #105317 - RalfJung:retag-rework, r=oli-obk 2022-12-08 12:57:30 +01:00
tools Rollup merge of #105317 - RalfJung:retag-rework, r=oli-obk 2022-12-08 12:57:30 +01:00
README.md
stage0.json Bump to latest beta 2022-11-06 17:11:02 -05:00
version Bump to 1.67.0 2022-10-29 10:28:52 -04:00

This directory contains the source code of the rust project, including:

  • The test suite
  • The bootstrapping build system
  • Various submodules for tools, like cargo, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.