rust/src
Dylan DPC ab88c19f15
Rollup merge of #101061 - RalfJung:panic-on-uninit, r=oli-obk
panic-on-uninit: adjust checks to 0x01-filling

Now that `mem::uninitiailized` actually fills memory with `0x01` (https://github.com/rust-lang/rust/pull/99182), we can make it panic in a few less cases without risking a lot more UB -- which hopefully slightly improves compatibility with some old code, and which might increase the chance that we can check inside arrays in the future.

We detect almost all of these with our lint, so authors of such code should still be warned -- but if this happens deep inside a dependency, the panic can be quite interruptive, so it might be better not to do it when there is no risk of LLVM UB.  Therefore, adjust the `might_permit_raw_init` logic to care primarily about LLVM UB. To my knowledge, it actually covers all cases of LLVM UB now.

Fixes https://github.com/rust-lang/rust/issues/66151

Cc ``@5225225``
2022-10-05 17:27:32 +05:30
..
bootstrap Rollup merge of #102686 - cuviper:rls-tool_std, r=jyn514 2022-10-04 20:45:14 -07:00
ci Upgrade dist-i586-gnu-i586-i686-musl to ubuntu:22.04 2022-09-30 17:32:12 -07:00
doc Upgrade dist-i586-gnu-i586-i686-musl to ubuntu:22.04 2022-09-30 17:32:12 -07:00
etc Add a niche to Duration, unix SystemTime, and non-apple Instant 2022-09-28 18:15:10 +01:00
librustdoc Rollup merge of #102662 - notriddle:notriddle/code-header-display-block, r=GuillaumeGomez 2022-10-04 20:45:13 -07:00
llvm-project@9567f08afc Update LLVM submodule 2022-09-30 16:39:32 +02:00
rustdoc-json-types Rustdoc-Json: List impls for primitives 2022-09-26 18:06:48 +01:00
test Rollup merge of #101061 - RalfJung:panic-on-uninit, r=oli-obk 2022-10-05 17:27:32 +05:30
tools Update cargo 2022-10-04 21:57:49 +01:00
README.md Remove miri from the submodule list and require it for CI to pass 2022-09-21 15:35:53 +00:00
stage0.json bump stage0 2022-09-26 10:13:46 +02:00
version bump version to 1.66.0 2022-09-16 10:51:09 +02: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.