Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix and enforce unsafe_op_in_unsafe_fn in compiler #127730

Merged
merged 2 commits into from
Jul 16, 2024

Conversation

compiler-errors
Copy link
Member

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 (#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.

@rustbot
Copy link
Collaborator

rustbot commented Jul 14, 2024

r? @petrochenkov

rustbot has assigned @petrochenkov.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@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
@workingjubilee
Copy link
Member

backtrace needs to be updated in order to be able to deny(unsafe_op_in_unsafe_fn) in std.

@workingjubilee
Copy link
Member

I put up #127744 as a partial step since taking care of every platform's code will be a nightmare.

@bors

This comment was marked as resolved.

@petrochenkov
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Jul 16, 2024

📌 Commit 28503d6 has been approved by petrochenkov

It is now in the queue for this repository.

@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
@bors bors merged commit 73028fe into rust-lang:master Jul 16, 2024
6 checks passed
@rustbot rustbot added this to the 1.81.0 milestone Jul 16, 2024
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants