rust/library/std
Jubilee 99c5302d9f
Rollup merge of #127744 - workingjubilee:deny-unsafe-op-in-std, r=jhpratt
std: `#![deny(unsafe_op_in_unsafe_fn)]` in platform-independent code

This applies the `unsafe_op_in_unsafe_fn` lint in all places in std that _do not have platform-specific cfg in their code_. For all such places, the lint remains allowed, because they need further work to address the relevant concerns. This list includes:

- `std::backtrace_rs` (internal-only)
- `std::sys` (internal-only)
- `std::os`

Notably this eliminates all "unwrapped" unsafe operations in `std::io` and `std::sync`, which will make them much more auditable in the future. Such has *also* been left for future work. While I made a few safety comments along the way on interfaces I have grown sufficiently familiar with, in most cases I had no context, nor particular confidence the unsafety was correct.

In the cases where I was able to determine the unsafety was correct without having prior context, it was obviously redundant. For example, an unsafe function calling another unsafe function that has the exact same contract, forwarding its caller's requirements just as it forwards its actual call.
2024-07-15 02:28:44 -07:00
..
benches also test parts of std 2024-04-07 10:05:57 +02:00
src Rollup merge of #127744 - workingjubilee:deny-unsafe-op-in-std, r=jhpratt 2024-07-15 02:28:44 -07:00
tests Add blank lines after module-level //! comments. 2024-06-20 09:23:20 +10:00
build.rs std: Set has_reliable_f16 to false for MIPS targets in build.rs 2024-07-03 13:52:06 +02:00
Cargo.toml Add experimental raw-dylib feature to std 2024-07-05 16:11:25 +00:00