Fix and enforce `unsafe_op_in_unsafe_fn` in compiler by compiler-errors · Pull Request #127730 · rust-lang/rust

@rustbot rustbot added S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-bootstrap

Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

T-compiler

Relevant to the compiler team, which will review and decide on the PR/issue.

labels

Jul 14, 2024

@compiler-errors

@compiler-errors

@bors bors added S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

and removed S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

labels

Jul 16, 2024

bors added a commit to rust-lang-ci/rust that referenced this pull request

Jul 16, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#127669 (Fix the issue of invalid suggestion for a reference of iterator)
 - rust-lang#127707 (match lowering: Use an iterator to find `expand_until`)
 - rust-lang#127730 (Fix and enforce `unsafe_op_in_unsafe_fn` in compiler)
 - rust-lang#127789 (delete #![allow(unsafe_op_in_unsafe_fn)] in teeos)
 - rust-lang#127805 (run-make-support: update gimli to 0.31.0)
 - rust-lang#127808 (Make ErrorGuaranteed discoverable outside types, consts, and lifetimes)
 - rust-lang#127817 (Fix a bunch of sites that were walking instead of visiting, making it impossible for visitor impls to look at these values)
 - rust-lang#127818 (Various ast validation simplifications)

r? `@ghost`
`@rustbot` modify labels: rollup

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Jul 16, 2024
Rollup merge of rust-lang#127730 - compiler-errors:ed-2024-unsafe, r=petrochenkov

Fix and enforce `unsafe_op_in_unsafe_fn` in compiler

In preparation for edition 2024, this PR previews the fallout of enabling the `unsafe_op_in_unsafe_fn` lint in the compiler, since it's defaulting to warn in the new edition (rust-lang#112038).

The major annoyance comes primarily from the `rustc_codegen_llvm` module, where there's a ton of unsafe calls. I tended to wrap individual calls to unsafe fns in `unsafe {}`, but there a handful of places I chose to just wrap several calls in an `unsafe {}` block just because it would've been excessive to wrap each call individually.

This doesn't enable the lint for the standard library, since I'm not totally certain what T-libs prefers w/ this lint.