Skip to content

Rustc pull update#2912

Merged
tshepang merged 20 commits into
mainfrom
rustc-pull
Jun 29, 2026
Merged

Rustc pull update#2912
tshepang merged 20 commits into
mainfrom
rustc-pull

Conversation

@workflows-rustc-dev-guide

Copy link
Copy Markdown

Latest update from rustc.

bors and others added 20 commits June 20, 2026 04:54
c-variadic: initialize the copied `VaList` in const-eval



Properly initialize the result of `VaList::clone` in `rustc_const_eval`.

r? RalfJung
cc @theemathas
rustc-dev-guide subtree update

Subtree update of `rustc-dev-guide` to 15388a6.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
…uwer

Rollup of 3 pull requests

Successful merges:

 - rust-lang/rust#158137 (Only copy visible content in clipboard in source code pages)
 - rust-lang/rust#158141 ([AArch64] FEAT_SVE implies FEAT_FP16)
 - rust-lang/rust#158177 (rustc-dev-guide subtree update)
 GVN: Don't assume nested shared references are read-only.

Fixes rust-lang/rust#155884.

rust-lang/rust#150485 only checks the type, whether it is a reference, which is not enough. The PR extends to other types.

cc @RalfJung @saethlin 

r? @cjgillot
remove AliasTy::def_id()



this is part of rust-lang/rust#156181

as well as part of rust-lang/rust#152245

this immediately uses [the recently-introduced `Alias<>` type](rust-lang/rust#156538) to narrow the kinds of aliases allowed in various places in code

fyi @lcnr

r? @BoxyUwU
As `*CombinedLateLintModPass`, because that matches things like
`late_lint_mod`.
More lint cleanups

Details in individual commits.

r? Urgau
Add missing links in integer docs

Saw some missing links while browsing the docs so fixed that.
…gnments-147648, r=adwinwhite

Add proc macro for unused assignments and corresponding test

rust-lang/rust#147648 now is fixed by change rust-lang/rust#151556
Add a test case and close the issue

Fixes rust-lang/rust#147648
…nter-deref, r=mu001999

Add regression test for unexpected pointer dereference issue

I try to pick up rust-lang/rust#154568 and found it's fixed by rust-lang/rust@4767f23.

Fixes rust-lang/rust#154568

cc @adwinwhite
…thanBrouwer

Fix doc comment on FormattingOptions::new().
…uwer

Rollup of 13 pull requests

Successful merges:

 - rust-lang/rust#157871 ([rustdoc] Update `doc_cfg` hide/show syntax)
 - rust-lang/rust#158234 (Cross-referencing tuple_trait tracking issue, source and the Unstable Book)
 - rust-lang/rust#158480 (add smoketest for std::net::hostname)
 - rust-lang/rust#157625 (Use infer tys for synthetic params when lowering const paths point to fns)
 - rust-lang/rust#158290 (add crashtests [1/N])
 - rust-lang/rust#158306 (tests: modify s390x vector test to be robust to instruction scheduling)
 - rust-lang/rust#158313 (Move `check_target_feature` into the attribute parser)
 - rust-lang/rust#158431 (More lint cleanups)
 - rust-lang/rust#158452 (Add missing links in integer docs)
 - rust-lang/rust#158467 (Add proc macro for unused assignments and corresponding test)
 - rust-lang/rust#158472 (Add regression test for unexpected pointer dereference issue)
 - rust-lang/rust#158475 (Fix doc comment on get_debug_as_hex.)
 - rust-lang/rust#158476 (Fix doc comment on FormattingOptions::new().)
std: fix xous dns ipv6 parsing off-by-one

the ipv6 arm read the 16-byte address from offset+1 instead of offset, unlike the ipv4 arm. this mis-parsed every ipv6 result and let the slice reach offset+17 while the bounds check only guards offset+16, so a malformed dns response could index past the 4096-byte buffer and panic.
Move `std::io::Error` into `core`





ACP: rust-lang/libs-team#755
Tracking issue: rust-lang/rust#154046
Related: rust-lang/rust#155574
Related: rust-lang/rust#152918

## Description

Moves `std::io::Error` into `core`, deferring `Box`-adjacent methods to incoherent implementations in `alloc`, and `RawOsError` methods to `std`. This requires some substantial changes to the internals of `Error`, but none of them are breaking changes or externally visible.

Notably, I've replaced usage of `Box` with a wrapper around a pointer and an appropriate drop function. This requires the addition of quite a few lines of unsafe, but is required to work around `Box` only being accessible from `alloc`. Additionally, an atomic pointer to a VTable is used for working with `RawOsError` in `core`, since we cannot know the required implementations without `std`.

As mention in [this comment](rust-lang/rust#155625 (comment)), there may be concern around having a static `AtomicPtr` in `core` for certain users. I've added a configuration option `no_io_statics` which (similar to `no_sync`/etc. in `alloc`) can be used to prevent their inclusion in `core`. When active, the fallback default implementation will always be used.

---

## Notes

* This PR adopts the VTable technique from rust-lang/rust#152918
* This PR builds on my previous PR rust-lang/rust#155574
* No AI tooling of any kind was used during the creation of this PR.
This updates the rust-version file to 7fb284d9037fa54f6a9b24261c82b394472cbfd7.
@rustbot

rustbot commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the PR. If you have write access, feel free to merge this PR if it does not need reviews. You can request a review using r? rustc-dev-guide or r? <username>.

@rustbot rustbot added the S-waiting-on-review Status: this PR is waiting for a reviewer to verify its content label Jun 29, 2026
@tshepang tshepang merged commit ed8fc07 into main Jun 29, 2026
1 check passed
@rustbot rustbot removed the S-waiting-on-review Status: this PR is waiting for a reviewer to verify its content label Jun 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants