Rollup of 8 pull requests#159985
Conversation
Use the one that's passed in.
- By improving various comments. - By renaming some fields. This gives a clear split between `move_outs`/`move_out_loc_map`/`move_out_path_map` and `inits`/`init_loc_map`/`init_path_map`.
By using an iterator instead of a manual loop.
It always has the same value as `mark_inactive_variants_as_uninit`, and it's only read if `mark_inactive_variants_as_uninit` is true.
Co-authored-by: Dominik Schwaiger <mail@dominik-schwaiger.ch>
The MIPS n64 ABI returns structs that meet the following requirements: - Up to 128 bits large - Only one or two fields, all of which are floating point - Offset of the first field is zero in floating point registers. This was already accounted for, but the edge case of a struct with a single f128 field was not handled correctly and would always be returned in integer registers. If we tell the backend to use a f128 register here, LLVM will return the value in two of the 64-bit FPRs, $f0 and $f2. That is equivalent to how Clang, GCC and also Rustc today would return a long double / f128. However, both Clang and GCC return a struct with a single long double field in $f0 and $f1. In order to achieve the same result in Rustc, we need to set the InReg attribute on the return value. With this, we now match Clang and GCC. Clang: https://godbolt.org/z/za8qv9P4n GCC: https://godbolt.org/z/9qcdGsce6 Rustc currently: https://godbolt.org/z/8sP5G4ash LLVM IR comparisons: https://godbolt.org/z/ojaTTY9hW
…, r=folkertdev Fix decoding attributes of `SyntheticCoroutineBody` Fixes rust-lang#156905 by returning an empty list of attributes for `SyntheticCoroutineBody` when its attributes are decoded
…Mark-Simulacrum feat: Update method signature of int_from_ascii * Tracking issue: rust-lang#134821 Following [discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/channel/327149-t-libs-api.2Fapi-changes/topic/How.20to.20proceed.20with.20int_from_ascii/with/611508226) it appears the preference is to change the API for this feature as follows: ```rust // core::num impl X { pub const fn from_ascii_bytes<T>(src: T) -> Result<X, ParseIntError> where T: [const] AsRef<[u8]> + [const] core::marker::Destruct; pub const fn from_ascii_bytes_radix<T>(src: T, radix: u32) -> Result<X, ParseIntError> where T: [const] AsRef<[u8]> + [const] core::marker::Destruct; } ``` and similarly for `NonZero<X>`. Reasons behind the change: * Future-proof the naming convention for future string-like types * Support the upcoming `ByteStr`/`ByteString` types: rust-lang#134915 This pull request applies this change. The const-ness of these functions is now feature gated behind rust-lang#143773
… r=cjgillot Some place analysis tweaks Details in individual commits. r? @cjgillot
…s, r=clarfonthey sanitize_standard_fds: Miri supports poll now However, so far it doesn't support it on the standard FDs (0..=2). So let's support those in poll and then remove a Miri special case in std.
…gle-f128, r=folkertdev rustc_target: callconv: mips64: Return structs with single f128 in FPRs The MIPS n64 ABI returns structs that meet the following requirements: - Up to 128 bits large - Only one or two fields, all of which are floating point - Offset of the first field is zero in floating point registers. This was already accounted for, but the edge case of a struct with a single `f128` field was not handled correctly and would always be returned in integer registers. If we tell the backend to use a `f128` register here, LLVM will return the value in two of the 64-bit FPRs, `$f0` and `$f2`. That is equivalent to how Clang, GCC and also Rustc today would return a `long double` / `f128`. However, both Clang and GCC return a struct with a single long double field in `$f0` and `$f1`. In order to achieve the same result in Rustc, we need to set the `InReg` attribute on the return value. With this, we now match Clang and GCC. Clang: https://godbolt.org/z/za8qv9P4n GCC: https://godbolt.org/z/9qcdGsce6 Rustc currently: https://godbolt.org/z/8sP5G4ash LLVM IR comparisons: https://godbolt.org/z/ojaTTY9hW --- I'm not sure if it is acceptable to use `Reg::f128` since MIPS has no 128-bit floating point registers unless MSA is present. LLVM lowers it correctly to use two FPRs, not sure if this would cause issues with GCC. `f16` probably also needs some changes here, but I'll do that as a follow-up. --- r? @folkertdev and Folkert also told me to cc @tgross35 :)
…athanBrouwer Add suggestions for using `#[export_name]` instead of `#[link_name]` on static Fixes rust-lang#159247. This adds a suggestion for using `#[unsafe(export_name = "...")]` when `#[link_name = "..."]` is applied to a static. It also handles the existing `#[unsafe(link_name = "...")]` form by replacing only the attribute name. Tested with: - `./x test tests/ui/attributes/link-name-on-static.rs` - `./x test tests/ui/attributes/unsafe-link-name-on-static.rs`
…-mode, r=adwinwhite Fix opaque type ICE in late lints under the next-generation trait solver fixes rust-lang/rust-clippy#17411 Under the next trait solver, late lints trigger an ICE due to having non-empty opaque storage when dropping `InferCtxt`. Rather than forcing all current and future late lints to manually use `ignoring_regions`, use `PostBorrowck` in `LateContext`. cc @adwinwhite
…23, r=Mark-Simulacrum Fix observable intermediate state in `thread::add_spawn_hook` Fixes rust-lang#159923. Ensures the intermediate state of there being no hooks in `add_spawn_hooks` is not observable by allocating the new head node before taking the current hook list. Also added a note to the docs of `add_spawn_hook` that hooks are not guaranteed to run and cannot be relied upon for soundness, as there are multiple ways to prevent all/some hooks from running.
Rollup of 8 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple try-job: x86_64-mingw-1 try-job: i686-msvc-*
|
A job failed! Check out the build log: (web) (plain enhanced) (plain) Click to see the possible cause of the failure (guessed by this bot) |
This comment has been minimized.
This comment has been minimized.
…uwer Rollup of 8 pull requests Successful merges: - #159085 (Fix decoding attributes of `SyntheticCoroutineBody`) - #159554 (feat: Update method signature of int_from_ascii) - #159637 (Some place analysis tweaks) - #159961 (sanitize_standard_fds: Miri supports poll now) - #159967 (rustc_target: callconv: mips64: Return structs with single f128 in FPRs) - #159253 (Add suggestions for using `#[export_name]` instead of `#[link_name]` on static) - #159840 (Fix opaque type ICE in late lints under the next-generation trait solver) - #159956 (Fix observable intermediate state in `thread::add_spawn_hook`)
|
💔 Test for 38d588b failed: CI. Failed jobs:
|
|
@bors retry |
|
A job failed! Check out the build log: (web) (plain enhanced) (plain) Click to see the possible cause of the failure (guessed by this bot) |
|
💔 Test for 622cb2d failed: CI. Failed job:
|
|
@bors retry |
|
❗ You can only retry pull requests that are approved and have a previously failed auto build. |
|
@bors p=101 |
This comment has been minimized.
This comment has been minimized.
…uwer Rollup of 8 pull requests Successful merges: - #159085 (Fix decoding attributes of `SyntheticCoroutineBody`) - #159554 (feat: Update method signature of int_from_ascii) - #159637 (Some place analysis tweaks) - #159961 (sanitize_standard_fds: Miri supports poll now) - #159967 (rustc_target: callconv: mips64: Return structs with single f128 in FPRs) - #159253 (Add suggestions for using `#[export_name]` instead of `#[link_name]` on static) - #159840 (Fix opaque type ICE in late lints under the next-generation trait solver) - #159956 (Fix observable intermediate state in `thread::add_spawn_hook`)
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
💔 Test for f4ab9de failed: CI. Failed jobs:
|
|
@bors try jobs=x86_64-mingw-1 |
|
⌛ Trying commit c7b2615 with merge aac2d5e… To cancel the try build, run the command Workflow: https://github.com/rust-lang/rust/actions/runs/30255110326 |
Rollup of 8 pull requests try-job: x86_64-mingw-1
|
This pull request was unapproved due to being closed. |
Successful merges:
SyntheticCoroutineBody#159085 (Fix decoding attributes ofSyntheticCoroutineBody)#[export_name]instead of#[link_name]on static #159253 (Add suggestions for using#[export_name]instead of#[link_name]on static)thread::add_spawn_hook#159956 (Fix observable intermediate state inthread::add_spawn_hook)r? @ghost
Create a similar rollup