Skip to content

Miri: fix handling of in-place argument and return place handling #145585

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

Merged
merged 2 commits into from
Aug 19, 2025

Conversation

RalfJung
Copy link
Member

This fixes two separate bugs (in two separate commits):

  • If the return place is _local and not *ptr, we didn't always properly protect it if there were other pointers pointing to that return place.
  • If two in-place arguments are the same local variable, we didn't always detect that aliasing.

@rustbot
Copy link
Collaborator

rustbot commented Aug 18, 2025

r? @jieyouxu

rustbot has assigned @jieyouxu.
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-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 18, 2025
@rustbot
Copy link
Collaborator

rustbot commented Aug 18, 2025

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

The Miri subtree was changed

cc @rust-lang/miri

Some changes occurred to the CTFE machinery

cc @RalfJung, @oli-obk, @lcnr

@compiler-errors
Copy link
Member

lgtm

r=me when CI is green

@jieyouxu jieyouxu assigned compiler-errors and unassigned jieyouxu Aug 18, 2025
@RalfJung RalfJung force-pushed the miri-inplace-arg-checks branch from cf776c7 to 7dfbc0a Compare August 19, 2025 06:37
@RalfJung
Copy link
Member Author

@bors r=compiler-errors

@bors
Copy link
Collaborator

bors commented Aug 19, 2025

📌 Commit 7dfbc0a has been approved by compiler-errors

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 Aug 19, 2025
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Aug 19, 2025
…r=compiler-errors

Miri: fix handling of in-place argument and return place handling

This fixes two separate bugs (in two separate commits):
- If the return place is `_local` and not `*ptr`, we didn't always properly protect it if there were other pointers pointing to that return place.
- If two in-place arguments are *the same* local variable, we didn't always detect that aliasing.
bors added a commit that referenced this pull request Aug 19, 2025
Rollup of 15 pull requests

Successful merges:

 - #139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - #140740 (Add `-Zindirect-branch-cs-prefix`)
 - #142079 (nll-relate: improve hr opaque types support)
 - #142938 (implement std::fs::set_permissions_nofollow on unix)
 - #143730 (fmt of non-decimal radix untangled)
 - #144767 (Correct some grammar in integer documentation)
 - #144906 (Require approval from t-infra instead of t-release on tier bumps)
 - #144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - #145025 (run spellcheck as a tidy extra check in ci)
 - #145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - #145166 (suggest using `pub(crate)` for E0364)
 - #145255 (dec2flt: Provide more valid inputs examples)
 - #145306 (Add tracing to various miscellaneous functions)
 - #145336 (Hide docs for `core::unicode`)
 - #145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 5d37e8e into rust-lang:master Aug 19, 2025
10 checks passed
rust-timer added a commit that referenced this pull request Aug 19, 2025
Rollup merge of #145585 - RalfJung:miri-inplace-arg-checks, r=compiler-errors

Miri: fix handling of in-place argument and return place handling

This fixes two separate bugs (in two separate commits):
- If the return place is `_local` and not `*ptr`, we didn't always properly protect it if there were other pointers pointing to that return place.
- If two in-place arguments are *the same* local variable, we didn't always detect that aliasing.
@rustbot rustbot added this to the 1.91.0 milestone Aug 19, 2025
Kobzol pushed a commit to Kobzol/rust that referenced this pull request Aug 19, 2025
Rollup of 15 pull requests

Successful merges:

 - rust-lang#139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - rust-lang#140740 (Add `-Zindirect-branch-cs-prefix`)
 - rust-lang#142079 (nll-relate: improve hr opaque types support)
 - rust-lang#142938 (implement std::fs::set_permissions_nofollow on unix)
 - rust-lang#143730 (fmt of non-decimal radix untangled)
 - rust-lang#144767 (Correct some grammar in integer documentation)
 - rust-lang#144906 (Require approval from t-infra instead of t-release on tier bumps)
 - rust-lang#144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - rust-lang#145025 (run spellcheck as a tidy extra check in ci)
 - rust-lang#145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - rust-lang#145166 (suggest using `pub(crate)` for E0364)
 - rust-lang#145255 (dec2flt: Provide more valid inputs examples)
 - rust-lang#145306 (Add tracing to various miscellaneous functions)
 - rust-lang#145336 (Hide docs for `core::unicode`)
 - rust-lang#145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Aug 20, 2025
Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - rust-lang/rust#140740 (Add `-Zindirect-branch-cs-prefix`)
 - rust-lang/rust#142079 (nll-relate: improve hr opaque types support)
 - rust-lang/rust#142938 (implement std::fs::set_permissions_nofollow on unix)
 - rust-lang/rust#143730 (fmt of non-decimal radix untangled)
 - rust-lang/rust#144767 (Correct some grammar in integer documentation)
 - rust-lang/rust#144906 (Require approval from t-infra instead of t-release on tier bumps)
 - rust-lang/rust#144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - rust-lang/rust#145025 (run spellcheck as a tidy extra check in ci)
 - rust-lang/rust#145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - rust-lang/rust#145166 (suggest using `pub(crate)` for E0364)
 - rust-lang/rust#145255 (dec2flt: Provide more valid inputs examples)
 - rust-lang/rust#145306 (Add tracing to various miscellaneous functions)
 - rust-lang/rust#145336 (Hide docs for `core::unicode`)
 - rust-lang/rust#145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
@RalfJung RalfJung deleted the miri-inplace-arg-checks branch August 20, 2025 07:35
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-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