Skip to content

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

miri: also detect aliasing of in-place argument and return place

This is a follow-up to rust-lang#145585 where I forgot to deal with the case of the return place aliasing an in-place argument -- as `@Amanieu` mentioned in rust-lang#71117 (comment), that case must also be forbidden.

r? `@compiler-errors`
samueltardieu added a commit to samueltardieu/rust that referenced this pull request Aug 23, 2025
…compiler-errors

miri: also detect aliasing of in-place argument and return place

This is a follow-up to rust-lang#145585 where I forgot to deal with the case of the return place aliasing an in-place argument -- as ``@Amanieu`` mentioned in rust-lang#71117 (comment), that case must also be forbidden.

r? ``@compiler-errors``
rust-timer added a commit that referenced this pull request Aug 24, 2025
Rollup merge of #145744 - RalfJung:miri-inplace-aliasing, r=compiler-errors

miri: also detect aliasing of in-place argument and return place

This is a follow-up to #145585 where I forgot to deal with the case of the return place aliasing an in-place argument -- as ``@Amanieu`` mentioned in #71117 (comment), that case must also be forbidden.

r? ``@compiler-errors``
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Aug 24, 2025
…errors

miri: also detect aliasing of in-place argument and return place

This is a follow-up to rust-lang/rust#145585 where I forgot to deal with the case of the return place aliasing an in-place argument -- as ``@Amanieu`` mentioned in rust-lang/rust#71117 (comment), that case must also be forbidden.

r? ``@compiler-errors``
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