Repository navigation
Rustc pull update - #1023
Merged
Merged
Rustc pull update#1023
Conversation
Remove `type_array` from `rustc_codegen_ssa` It's unused outside of `rustc_codegen_llvm`/`rustc_codegen_gcc`, and shouldn't be used in future in `rustc_codegen_ssa` to help allow backends that don't support immediate aggregate types to use `rustc_codegen_ssa` in the future.
Rollup of 6 pull requests Successful merges: - rust-lang/rust#164617 (tools: remote-test-server: Fix UEFI crash return code) - rust-lang/rust#164549 (feat!: change return type of `TryFromIntError::kind`) - rust-lang/rust#164893 (Add diagnostic items for env::vars / env::vars_os) - rust-lang/rust#164897 (Add regression test for CoerceShared impl with unnormalizable target) - rust-lang/rust#164908 (Add regression test for self referential inherent associated type ICE) - rust-lang/rust#164926 (Remove `type_array` from `rustc_codegen_ssa`)
This function is documented as allowed to continue, which is useful behavior during const eval. Split a new `resumable_breakpoint` intrinsic from `breakpoint` which has the behavior of continuing in Miri and CTFE.
…rk-Simulacrum core: Constify `resumable_breakpoint` and re-export it in `std` This function is documented as allowed to continue, which is useful behavior during const eval. Split a new `resumable_breakpoint` intrinsic from `breakpoint` which has the behavior of continuing in Miri and CTFE.
Rollup of 9 pull requests Successful merges: - rust-lang/rust#164168 (Add tests for unsoundness involving alias liveness) - rust-lang/rust#164608 (core: Constify `resumable_breakpoint` and re-export it in `std`) - rust-lang/rust#164787 (cg_llvm: Use an invariant lifetime brand for LLVM contexts ) - rust-lang/rust#164966 (x86-64-linux-gnu seems to have working f128 now) - rust-lang/rust#153893 (Lex lifetimes as identifiers, recover from emoji and emit appropriate error) - rust-lang/rust#164848 (Add `strict_` methods to `NonZero`) - rust-lang/rust#164895 (Disable recovery when attribute parser shouldn't emit) - rust-lang/rust#164963 (fd-views: enable test on Miri) - rust-lang/rust#165004 (docs: Nitpick change in `HashMap`'s `.insert_entry()` doc example)
Refactor call argument codegen As non-`OperandValue::Immediate` arguments are never passed directly (`PassMode::Direct`) as single LLVM arguments any more, the handling for that case in `codegen_argument` (and the equivalent for LLVM intrinsics) can be removed. This allows `codegen_argument` to be refactored from its current state where it matches on the pass mode three times to only matching on it a single time, making the code much easier to follow. r? @bjorn3
…uwer Rollup of 21 pull requests Successful merges: - rust-lang/rust#159580 (Reject cfg on expressions that cannot be safely removed) - rust-lang/rust#162597 (raise ambiguity error on attribute macro that could be tool attribute) - rust-lang/rust#162808 (Enable `--generate-link-to-definition` rustdoc option on std docs) - rust-lang/rust#163059 (Recover invalid return type until `{`, `}` or `;`) - rust-lang/rust#163672 (Use runCodeGen Abstraction for new LLVM) - rust-lang/rust#164028 (Add a future incompat warning for #[no_link]) - rust-lang/rust#164188 (Suggest adding lifetime for `dyn Trait` in return type) - rust-lang/rust#164345 (fix: handle `false` in root contexts) - rust-lang/rust#164494 (drop ands which are a superset of other ands) - rust-lang/rust#164785 (delegation: emit error when there is no field for `Self` mapping) - rust-lang/rust#164799 (Don't use `IntoIterator` in parallel API) - rust-lang/rust#164871 (Refactor call argument codegen) - rust-lang/rust#164648 (parse inline and rustc_force_inline with same parser) - rust-lang/rust#164811 (fix: Prevent ICE when comparing EII impl against generic declaration) - rust-lang/rust#164900 (make tool_attrs method to retrieve tool attributes.) - rust-lang/rust#164993 (copy_nonoverlapping: dont skip ovelrap check when src is fully uninit) - rust-lang/rust#164996 (miri: add missing alignment check in write_bytes) - rust-lang/rust#165012 (Remove Span::eq_ctxt()) - rust-lang/rust#165013 ([tiny] Add missing backticks around lifetime name) - rust-lang/rust#165024 (rustdoc-search: rank re-export lower) - rust-lang/rust#165028 (Update enzyme to fix one bug related to higher-order derivatives)
Remove `TypeKind` from `rustc_codegen_ssa` `TypeKind` is a very LLVM-shaped enum (e.g. there is a single `TypeKind::Integer` but multiple variants for floats because that's what LLVM does) - other backends (e.g. `rustc_codegen_gcc`) usually don't have a single call to get the required information and have to check for each variant individually, even though most callers only care if a type is one or at most a few variants. This PR removes `TypeKind` and `cx.type_kind()` from `rustc_codegen_ssa`, replacing them with `Option`-returning methods `int_width`, `float_type` and `vector_element_type_and_length`. cc @antoyo for `rustc_codegen_gcc` r? @bjorn3
…uwer Rollup of 22 pull requests Successful merges: - rust-lang/rust#165032 (stdarch subtree update) - rust-lang/rust#165123 (Temporarily drop macos-26 jobs) - rust-lang/rust#165072 (Submodule update of rustc-perf) - rust-lang/rust#144090 (Make `IoSlice` and `IoSliceMut` methods unstably const) - rust-lang/rust#162342 (More stdarch regression tests) - rust-lang/rust#163909 (std: Test the exit behavior of `abort` and `abort_immediate`) - rust-lang/rust#164766 (Unstably introduce MVP edition migration lint `unmarked_unchecked_type_aliases` together with bikeshed attribute `#[rustc_unchecked_type_alias]`) - rust-lang/rust#164916 (CI: rfl: move job forward to Linux v7.3) - rust-lang/rust#164924 (Remove `TypeKind` from `rustc_codegen_ssa`) - rust-lang/rust#164969 (perf: avoid allocating HashSet in is_distinct check on small SwitchInts) - rust-lang/rust#165083 (Gate `z` inline asm template modifier) - rust-lang/rust#165087 (Fix flaky CI test `named_temp_file_new_creates_file`) - rust-lang/rust#161131 (Check associated const binding types) - rust-lang/rust#161418 (give next-solver's `evaluate_const` its own `try_evaluate_const` logic) - rust-lang/rust#164315 (make powerpc `Complex` ABI GCC-compatible) - rust-lang/rust#164476 (Avoid ICE on None from prepare_vtable_segments) - rust-lang/rust#165003 (follow up for global-alloc-reentry test) - rust-lang/rust#165020 (Bless mir-opt panic-abort tests) - rust-lang/rust#165066 (skip max_repr_align in Layout::eq_abi) - rust-lang/rust#165080 (Syntactically allow C-variadics in parenthesized argument lists) - rust-lang/rust#165081 (move `#[rustc_allow_const_fn_unstable]` attr check to attr parsing stage) - rust-lang/rust#165082 (Remove stability note from `rust_splat`)
This avoids depending on LLVM's struct types to determine the size of the array/pointer element. Co-Authored-By: Bee <b@beetr.ee>
…eria Remove GenericArgRef This removes `GenericArgsRef`, renaming it to `GenericArgs`. `GenericArgs` used to be an unsized version of `GenericArgsRef`, the reference being just a type alias, but really having access to this unsized type available was not necessary. This also makes `GenericArgs` a tuple struct, giving us the possibility to change its representation in the future. r? @khyperia > [!NOTE] > I've not used an LLM for any part of this PR, or any other PR I make. This includes any related work like research.
…uwer Rollup of 22 pull requests Successful merges: - rust-lang/rust#164851 (Add behavior tests for `Arc` and `Rc`) - rust-lang/rust#164989 (rustdoc: Fix performance regression for private documented items) - rust-lang/rust#165079 (Remove GenericArgRef) - rust-lang/rust#161781 (Don't emit InlineAsm terminator if input operand is `!`.) - rust-lang/rust#162754 (optimize large elements for slice rotating) - rust-lang/rust#163252 (Remove windows-targets dependency from the root workspace) - rust-lang/rust#163839 (Fix the floating point clobbers of RISC-V `clobber_abi`) - rust-lang/rust#165104 (Use getrandom instead of /scheme/rand on Redox OS) - rust-lang/rust#165132 (Implement `advance_back_by` on `Fuse`) - rust-lang/rust#165142 (Remove the unused generic Graphviz writer) - rust-lang/rust#165233 (Remove test-aarch64-apple-* jobs temporarily) - rust-lang/rust#163371 (Don't suggest replacing foreign format specifiers in `concat!` output) - rust-lang/rust#163802 (fix RegionEq direction in canonical query responses) - rust-lang/rust#163986 (omit unconditionally invoking crate level limits query) - rust-lang/rust#164920 (Point at prior token on `let` when expression is expected) - rust-lang/rust#164987 (use adt_async_drop_tys for nested ADTs in needs_async_drop) - rust-lang/rust#165061 (Use a fixed-length encoding for hash disambiguators in v0 symbols) - rust-lang/rust#165114 (use native interpreter impl for funnel shifts intrinsics) - rust-lang/rust#165119 (remove unnecessary fast path from borrowck) - rust-lang/rust#165122 (fix MaybeDangling validity logic for ZST at usize::MAX) - rust-lang/rust#165128 (Move `doc(keyword)` and `doc(attribute)` attributes checks from `rustc_passes` to `rustc_attr_parsing`) - rust-lang/rust#165129 (Fix ICE in prelude edition lint) > [!WARNING] > This rollup conflicts with pending auto build #165217 and may need to be recreated if the pending build succeeds.
Stop using LLVM struct types for array/pointer offset GEPs (rebase) This is a rebase and improvement upon rust-lang/rust#122325 by @erikdesjardins. In addition to what was already in that PR, I've changed the signature of `gep`/`inbounds_gep`/`inbounds_nuw_gep` to take the `stride: Size` directly. The only GEPs not migrated are the ones in `gpu_offload.rs`: given their more intensive use of LLVM types, I've split them off into rust-lang/rust#165154 to make this PR easier to review. Closes rust-lang/rust#122325 r? @nikic
…uwer Rollup of 23 pull requests Successful merges: - rust-lang/rust#163410 (Use a macro to reduce duplication in `core/src/num/f{16,32,64,128}.rs` (part 1)) - rust-lang/rust#164290 (virtual function elimination: only use `type.checked.load` for function pointers) - rust-lang/rust#165113 (Limit lldb string summary length) - rust-lang/rust#165146 (Stop using LLVM struct types for array/pointer offset GEPs (rebase)) - rust-lang/rust#165197 (Inline usages of `is_doc_keyword_or_attribute` and `is_rustc_doc_primitive`) - rust-lang/rust#165209 (Don't ICE when making diagnostic in `point_at_dyn_trait_in_field_def` if there's no `dyn Trait` field to point at) - rust-lang/rust#165228 (Fix error output for invalid `SBValue` children) - rust-lang/rust#153633 (feat: improve `Cell` doc) - rust-lang/rust#164686 (Add regression test for new solver hang on cyclic projection bound) - rust-lang/rust#164730 (core: Rename `abort_immediate` to `crash`) - rust-lang/rust#164937 (Add example for misaligned elements in `subslice_range`) - rust-lang/rust#165019 (Add safety section for from_utf8_unchecked/from_raw_parts) - rust-lang/rust#165035 (Suggest `gca!` for path const args that use generic params) - rust-lang/rust#165106 (Windows: Disallow some special chars in bat script names) - rust-lang/rust#165120 (Add regression test for overlap check hang with unresolved type in where clause) - rust-lang/rust#165158 (Tiny optimization to `TypeErrCtxt::report_inference_failure()`) - rust-lang/rust#165184 (GCI: Check where-clauses of associated constants for well-formedness) - rust-lang/rust#165190 (Improve delayed bug comment and message on first_method_vtable_slot) - rust-lang/rust#165196 (inhabitedness: use try_normalize_erasing_regions on ADT fields) - rust-lang/rust#165206 (tests: clarify dead_code_pub_in_binary FIXME after Cargo workaround) - rust-lang/rust#165214 (add MaybeUninit::from_ref) - rust-lang/rust#165225 (LoongArch: Restore `feature(stdarch_loongarch)` for bootstrap) - rust-lang/rust#165235 (two LLVM backend cleanups) Failed merges: - rust-lang/rust#160370 (rustdoc: notable trait badge and popover enhancements) - rust-lang/rust#164981 (Reflection add TypeId::name)
Remove `AbiAlign` The first commit removes the final use of `AbiAlign` (as a field of `LayoutData`), and the second commit removes `AbiAlign` itself. r? @workingjubilee
…uwer Rollup of 7 pull requests Successful merges: - rust-lang/rust#165416 (fix unsoundness when compiling `[diverging_const; 0]`) - rust-lang/rust#163217 ([perf] rustdoc: Avoid re-HIR-ty-lowering tys & const args where possible) - rust-lang/rust#165371 (Don't use `llvm_type` as the type of `static`s.) - rust-lang/rust#165354 (Remove `AbiAlign`) - rust-lang/rust#165357 (rustdoc: Fix invalid clean of paths when they end with `self`) - rust-lang/rust#165401 (Add codegen test for step_by(1) loop vectorization) - rust-lang/rust#165408 (LLVMRustWriteOutputFile: Check the result of runCodeGenPipeline)
…antoyo,bjorn3 Remove return type from `BuilderMethods::store` The return type is an artefact of how LLVM's API works and is unused, so this PR removes it. r? @antoyo
Rollup of 15 pull requests Successful merges: - rust-lang/rust#163477 (Fancy paramenv accessors that communicate the access pattern better.) - rust-lang/rust#160593 (turn ABI-controlling target features into a target modifier) - rust-lang/rust#164896 (offload: pass the linked device image to the host pass) - rust-lang/rust#165468 (Remove return type from `BuilderMethods::store`) - rust-lang/rust#164564 (Re-enable outline-atomics by default on more AArch64 platforms) - rust-lang/rust#164623 (add next-solver regression tests for two fixed ices) - rust-lang/rust#164653 (Deprecate internal function `vec::from_elem`) - rust-lang/rust#164678 (add next-solver regression test for recursive opaque ICE under validate-mir) - rust-lang/rust#165387 (windows OpenOptionsExt examples: replace winapi by windows crate) - rust-lang/rust#165429 (Add tests for `-Zcrate-attr` edition and position) - rust-lang/rust#165430 ([tiny] Show context for found assoc item in E0107) - rust-lang/rust#165456 (std: Fix build for the L4Re targets) - rust-lang/rust#165463 (Add BTreeMap::allocator and BTreeSet::allocator) - rust-lang/rust#165466 (Don't "exit" using `panic` on teeos) - rust-lang/rust#165491 (Remove unused compiler types and associated helpers)
This updates the rust-toolchain.toml file to nightly-2026-11-07 (c980177d81d16f843a500905ac98c0cf3af1fd8d).
Pull recent changes from https://github.com/rust-lang/rust via Josh. Previous upstream ref: rust-lang/rust@76456a6 New upstream ref: rust-lang/rust@c980177 Filtered ref: a9cc201 Upstream diff: rust-lang/rust@76456a6...c980177 This merge was created using https://github.com/rust-lang/josh-sync.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge ref 'c980177d81d1' (nightly-2026-11-07) from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Previous upstream ref: rust-lang/rust@76456a6
New upstream ref: rust-lang/rust@c980177
Filtered ref: a9cc201
Upstream diff: rust-lang/rust@76456a6...c980177
This merge was created using https://github.com/rust-lang/josh-sync.