Skip to content

Properly reject tail calls to &FnPtr or &FnDef - #144817

Merged
bors merged 2 commits into
rust-lang:masterfrom
WaffleLapkin:reject-referety
Aug 5, 2025
Merged

Properly reject tail calls to &FnPtr or &FnDef#144817
bors merged 2 commits into
rust-lang:masterfrom
WaffleLapkin:reject-referety

Conversation

@WaffleLapkin

@WaffleLapkinWaffleLapkin commented Aug 2, 2025

Copy link
Copy Markdown
Member

Fixes#144795

@rustbot

Copy link
Copy Markdown
Collaborator

r? @davidtwco

rustbot has assigned @davidtwco.
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

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 2, 2025
Comment threadcompiler/rustc_mir_build/src/check_tail_calls.rs Outdated
Comment threadcompiler/rustc_mir_build/src/check_tail_calls.rs Outdated
@rust-log-analyzer

This comment has been minimized.

@WaffleLapkinWaffleLapkin added the F-explicit_tail_calls `#![feature(explicit_tail_calls)]` label Aug 3, 2025
@WaffleLapkin

Copy link
Copy Markdown
MemberAuthor

@Urgau I improved the suggestion as you suggested, take a look

Comment threadcompiler/rustc_mir_build/src/check_tail_calls.rs
@Urgau

Urgau commented Aug 3, 2025

Copy link
Copy Markdown
Member

r? Urgau

@UrgauUrgau left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. r=me when CI is green

@Urgau

Urgau commented Aug 4, 2025

Copy link
Copy Markdown
Member

@bors r+

@bors

bors commented Aug 4, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 8b65f3d has been approved by Urgau

It is now in the queue for this repository.

@borsbors 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 Aug 4, 2025
samueltardieu added a commit to samueltardieu/rust that referenced this pull request Aug 4, 2025
bors added a commit that referenced this pull request Aug 4, 2025
Rollup of 18 pull requests
Successful merges:
- #144467 (rustdoc template font links only emit `crossorigin` when needed)
- #144548 (Rehome 21 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
- #144596 (libtest: print the type of test being run)
- #144741 (fix: Error on illegal `[const]`s inside blocks within legal positions)
- #144776 (`Printer` cleanups)
- #144779 (Implement debugging output of the bootstrap Step graph into a DOT file)
- #144813 (Add a tidy check to prevent adding UI tests directly under `tests/ui/`)
- #144817 (Properly reject tail calls to `&FnPtr` or `&FnDef`)
- #144852 (Rename `rust_panic_without_hook` to `resume_unwind` )
- #144866 (Remove `SHOULD_EMIT_LINTS` in favor of `should_emit`)
- #144867 (Use `as_array` in PartialEq for arrays)
- #144872 (Document Poisoning in `LazyCell` and `LazyLock`)
- #144877 (coverage: Various small cleanups)
- #144887 (`rust-analyzer` subtree update)
- #144890 (Add `InterpCx::project_fields`)
- #144894 (Delete `tests/ui/threads-sendsync/tcp-stress.rs`)
- #144905 (rustc-dev-guide subtree update)
- #144920 (Dont print arg span in MIR dump for tail call)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit that referenced this pull request Aug 5, 2025
Rollup of 17 pull requests
Successful merges:
- #144467 (rustdoc template font links only emit `crossorigin` when needed)
- #144548 (Rehome 21 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
- #144741 (fix: Error on illegal `[const]`s inside blocks within legal positions)
- #144776 (`Printer` cleanups)
- #144779 (Implement debugging output of the bootstrap Step graph into a DOT file)
- #144813 (Add a tidy check to prevent adding UI tests directly under `tests/ui/`)
- #144817 (Properly reject tail calls to `&FnPtr` or `&FnDef`)
- #144852 (Rename `rust_panic_without_hook` to `resume_unwind` )
- #144866 (Remove `SHOULD_EMIT_LINTS` in favor of `should_emit`)
- #144867 (Use `as_array` in PartialEq for arrays)
- #144872 (Document Poisoning in `LazyCell` and `LazyLock`)
- #144877 (coverage: Various small cleanups)
- #144887 (`rust-analyzer` subtree update)
- #144890 (Add `InterpCx::project_fields`)
- #144894 (Delete `tests/ui/threads-sendsync/tcp-stress.rs`)
- #144905 (rustc-dev-guide subtree update)
- #144920 (Dont print arg span in MIR dump for tail call)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit eee8d77 into rust-lang:masterAug 5, 2025
10 checks passed
@rustbotrustbot added this to the 1.91.0 milestone Aug 5, 2025
rust-timer added a commit that referenced this pull request Aug 5, 2025
Rollup merge of #144817 - WaffleLapkin:reject-referety, r=Urgau
Properly reject tail calls to `&FnPtr` or `&FnDef`
Fixes#144795
@WaffleLapkin
WaffleLapkin deleted the reject-referety branch August 5, 2025 08:40
github-actionsBot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Aug 7, 2025
Rollup of 17 pull requests
Successful merges:
- rust-lang/rust#144467 (rustdoc template font links only emit `crossorigin` when needed)
- rust-lang/rust#144548 (Rehome 21 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
- rust-lang/rust#144741 (fix: Error on illegal `[const]`s inside blocks within legal positions)
- rust-lang/rust#144776 (`Printer` cleanups)
- rust-lang/rust#144779 (Implement debugging output of the bootstrap Step graph into a DOT file)
- rust-lang/rust#144813 (Add a tidy check to prevent adding UI tests directly under `tests/ui/`)
- rust-lang/rust#144817 (Properly reject tail calls to `&FnPtr` or `&FnDef`)
- rust-lang/rust#144852 (Rename `rust_panic_without_hook` to `resume_unwind` )
- rust-lang/rust#144866 (Remove `SHOULD_EMIT_LINTS` in favor of `should_emit`)
- rust-lang/rust#144867 (Use `as_array` in PartialEq for arrays)
- rust-lang/rust#144872 (Document Poisoning in `LazyCell` and `LazyLock`)
- rust-lang/rust#144877 (coverage: Various small cleanups)
- rust-lang/rust#144887 (`rust-analyzer` subtree update)
- rust-lang/rust#144890 (Add `InterpCx::project_fields`)
- rust-lang/rust#144894 (Delete `tests/ui/threads-sendsync/tcp-stress.rs`)
- rust-lang/rust#144905 (rustc-dev-guide subtree update)
- rust-lang/rust#144920 (Dont print arg span in MIR dump for tail call)
r? `@ghost`
`@rustbot` modify labels: rollup
github-actionsBot pushed a commit to rust-lang/rust-analyzer that referenced this pull request Aug 11, 2025
Rollup of 17 pull requests
Successful merges:
- rust-lang/rust#144467 (rustdoc template font links only emit `crossorigin` when needed)
- rust-lang/rust#144548 (Rehome 21 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
- rust-lang/rust#144741 (fix: Error on illegal `[const]`s inside blocks within legal positions)
- rust-lang/rust#144776 (`Printer` cleanups)
- rust-lang/rust#144779 (Implement debugging output of the bootstrap Step graph into a DOT file)
- rust-lang/rust#144813 (Add a tidy check to prevent adding UI tests directly under `tests/ui/`)
- rust-lang/rust#144817 (Properly reject tail calls to `&FnPtr` or `&FnDef`)
- rust-lang/rust#144852 (Rename `rust_panic_without_hook` to `resume_unwind` )
- rust-lang/rust#144866 (Remove `SHOULD_EMIT_LINTS` in favor of `should_emit`)
- rust-lang/rust#144867 (Use `as_array` in PartialEq for arrays)
- rust-lang/rust#144872 (Document Poisoning in `LazyCell` and `LazyLock`)
- rust-lang/rust#144877 (coverage: Various small cleanups)
- rust-lang/rust#144887 (`rust-analyzer` subtree update)
- rust-lang/rust#144890 (Add `InterpCx::project_fields`)
- rust-lang/rust#144894 (Delete `tests/ui/threads-sendsync/tcp-stress.rs`)
- rust-lang/rust#144905 (rustc-dev-guide subtree update)
- rust-lang/rust#144920 (Dont print arg span in MIR dump for tail call)
r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

F-explicit_tail_calls`#![feature(explicit_tail_calls)]`S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

ICE: rustc panicked at compiler/rustc_type_ir/src/ty_kind.rs:288:18 with explicit tail call through function pointer

6 participants

@WaffleLapkin@rustbot@rust-log-analyzer@Urgau@bors@davidtwco