Commit Graph

23408 Commits

Author SHA1 Message Date
bors db3e99bbab Auto merge of #150605 - RalfJung:fallback-intrinsic-skip, r=mati865
skip codegen for intrinsics with big fallback bodies if backend does not need them

This hopefully fixes the perf regression from https://github.com/rust-lang/rust/pull/148478. I only added the intrinsics with big fallback bodies to the list; it doesn't seem worth the effort of going through the entire list.

Fixes https://github.com/rust-lang/rust/issues/149945
Cc @scottmcm @bjorn3
2026-02-04 17:12:58 +00:00
Jonathan Brouwer cf0e19b0b4 Rollup merge of #152102 - bjorn3:inline_fluent_codegen_backends, r=JonathanBrouwer,GuillaumeGomez
Convert to inline diagnostics in all codegen backends

Part of https://github.com/rust-lang/rust/issues/151366

r? @JonathanBrouwer
2026-02-04 14:39:29 +01:00
Jonathan Brouwer 76a49eeb6c Rollup merge of #151952 - GuillaumeGomez:revert-error-to-future-warning, r=JonathanBrouwer
Revert doc attribute parsing errors to future warnings

Part of https://github.com/rust-lang/rust/issues/151865 (hopefully fixes it).

r? @JonathanBrouwer
2026-02-04 14:39:22 +01:00
Jonathan Brouwer 9fd5712bf5 Rollup merge of #151526 - ZuseZ4:fix-autodiff-codegen-tests, r=oli-obk
Fix autodiff codegen tests

Preparing autodiff for release on nightly. Since we haven't been running these tests in CI, they regressed over the last months. These changes fixes this and hopefully make the tests more robust for the future.

r? compiler
2026-02-04 14:39:19 +01:00
Jonathan Brouwer 841c462eb0 Rollup merge of #151534 - davidtwco:destabilise-target-spec-json-again, r=chenyukang
target: fix destabilising target-spec-json

cc rust-lang/rust#151528

rust-lang/rust#150151 missed a case and didn't entirely destabilise target-spec-json - this patch corrects that.

Closes https://github.com/rust-lang/rust/issues/71009
2026-02-04 14:39:17 +01:00
Jonathan Brouwer a1d588b35e Rollup merge of #150992 - cezarbbb:cstyle-export-rules2, r=bjorn3,petrochenkov
link modifier `export-symbols`: export all global symbols from selected uptream c static libraries

In order to be able to export symbols from a specified upstream C static library, I redesigned a solution that, compared to a previous PR rust-lang/rust#150335 I submitted, will not have any extra symbols leaking out.

The following points should be noted:
 - This attribute will select and import the `Global` symbols of the first matching library it finds.
 - Developers should ensure that there are no libraries with the same name.
 - This modifier is only compatible with `static` linking kind
 - By default, upstream C static libraries will not export their `Global` symbols regardless of whether `LTO` optimization is enabled. However, after enabling this attribute, if the upstream C static library has `LTO` optimization enabled, the compiler will issue an error to inform the developer that the linked C library is invalid.

The test code is the same as the PR rust-lang/rust#150335.
Here are the results:
1. `cargo +include-libs rustc --release -- -L. -lstatic:+export-symbols=c_add`
(or you can use `#[link(name = "c_add", kind= "static", modifier = "+export-symbols")]` in the file)
```bash
                 U abort@GLIBC_2.2.5
                 U bcmp@GLIBC_2.2.5
0000000000014f60 T c_add
                 U calloc@GLIBC_2.2.5
                 U close@GLIBC_2.2.5
0000000000014f70 T c_sub
                 w __cxa_finalize@GLIBC_2.2.5
                 w __cxa_thread_atexit_impl@GLIBC_2.18
                 U dl_iterate_phdr@GLIBC_2.2.5
0000000000014ee0 T downstream_add
                 U __errno_location@GLIBC_2.2.5
                 U free@GLIBC_2.2.5
                 U fstat64@GLIBC_2.33
                 U getcwd@GLIBC_2.2.5
                 U getenv@GLIBC_2.2.5
                 w __gmon_start__
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 U lseek64@GLIBC_2.2.5
                 U malloc@GLIBC_2.2.5
                 U memcpy@GLIBC_2.14
                 U memmove@GLIBC_2.2.5
                 U memset@GLIBC_2.2.5
                 U mmap64@GLIBC_2.2.5
                 U munmap@GLIBC_2.2.5
                 U open64@GLIBC_2.2.5
                 U posix_memalign@GLIBC_2.2.5
                 U pthread_key_create@GLIBC_2.34
                 U pthread_key_delete@GLIBC_2.34
                 U pthread_setspecific@GLIBC_2.34
                 U read@GLIBC_2.2.5
                 U readlink@GLIBC_2.2.5
                 U realloc@GLIBC_2.2.5
                 U realpath@GLIBC_2.3
                 U stat64@GLIBC_2.33
                 w statx@GLIBC_2.28
                 U strlen@GLIBC_2.2.5
                 U syscall@GLIBC_2.2.5
                 U __tls_get_addr@GLIBC_2.3
                 U _Unwind_Backtrace@GCC_3.3
                 U _Unwind_DeleteException@GCC_3.0
                 U _Unwind_GetDataRelBase@GCC_3.0
                 U _Unwind_GetIP@GCC_3.0
                 U _Unwind_GetIPInfo@GCC_4.2.0
                 U _Unwind_GetLanguageSpecificData@GCC_3.0
                 U _Unwind_GetRegionStart@GCC_3.0
                 U _Unwind_GetTextRelBase@GCC_3.0
                 U _Unwind_RaiseException@GCC_3.0
                 U _Unwind_Resume@GCC_3.0
                 U _Unwind_SetGR@GCC_3.0
                 U _Unwind_SetIP@GCC_3.0
                 U write@GLIBC_2.2.5
                 U writev@GLIBC_2.2.5
```
3. `cargo +nightly rustc --release -- -L ./`
```bash
                 U abort@GLIBC_2.2.5
                 U bcmp@GLIBC_2.2.5
                 U calloc@GLIBC_2.2.5
                 U close@GLIBC_2.2.5
                 w __cxa_finalize@GLIBC_2.2.5
                 w __cxa_thread_atexit_impl@GLIBC_2.18
                 U dl_iterate_phdr@GLIBC_2.2.5
0000000000011e10 T downstream_add
                 U __errno_location@GLIBC_2.2.5
                 U free@GLIBC_2.2.5
                 U fstat64@GLIBC_2.33
                 U getcwd@GLIBC_2.2.5
                 U getenv@GLIBC_2.2.5
                 w gettid@GLIBC_2.30
                 w __gmon_start__
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 U lseek64@GLIBC_2.2.5
                 U malloc@GLIBC_2.2.5
                 U memcpy@GLIBC_2.14
                 U memmove@GLIBC_2.2.5
                 U memset@GLIBC_2.2.5
                 U mmap64@GLIBC_2.2.5
                 U munmap@GLIBC_2.2.5
                 U open64@GLIBC_2.2.5
                 U posix_memalign@GLIBC_2.2.5
                 U pthread_key_create@GLIBC_2.34
                 U pthread_key_delete@GLIBC_2.34
                 U pthread_setspecific@GLIBC_2.34
                 U read@GLIBC_2.2.5
                 U readlink@GLIBC_2.2.5
                 U realloc@GLIBC_2.2.5
                 U realpath@GLIBC_2.3
                 U stat64@GLIBC_2.33
                 w statx@GLIBC_2.28
                 U strlen@GLIBC_2.2.5
                 U syscall@GLIBC_2.2.5
                 U __tls_get_addr@GLIBC_2.3
                 U _Unwind_Backtrace@GCC_3.3
                 U _Unwind_GetDataRelBase@GCC_3.0
                 U _Unwind_GetIP@GCC_3.0
                 U _Unwind_GetIPInfo@GCC_4.2.0
                 U _Unwind_GetLanguageSpecificData@GCC_3.0
                 U _Unwind_GetRegionStart@GCC_3.0
                 U _Unwind_GetTextRelBase@GCC_3.0
                 U _Unwind_RaiseException@GCC_3.0
                 U _Unwind_Resume@GCC_3.0
                 U _Unwind_SetGR@GCC_3.0
                 U _Unwind_SetIP@GCC_3.0
                 U write@GLIBC_2.2.5
                 U writev@GLIBC_2.2.5
```

r? @bjorn3
2026-02-04 14:39:17 +01:00
bjorn3 d2a0557afb Convert to inline diagnostics in all codegen backends 2026-02-04 13:12:49 +00:00
Guillaume Gomez c910511cab Move remaining doc attribute parsing errors to warnings 2026-02-04 10:54:45 +01:00
Guillaume Gomez 6d713489d0 Make more doc attribute parsing error into future warnings 2026-02-04 10:54:45 +01:00
Guillaume Gomez 7dbbab63e2 Emit a future error warning for duplicate doc attribute 2026-02-04 10:54:44 +01:00
Jonathan Brouwer b8755a44fc Rollup merge of #152053 - TaKO8Ki:err-tail-semicolon-suggest, r=nnethercote
Avoid semicolon suggestion when tail expr is error

Fixes rust-lang/rust#151610

When the tail expression is Err due to recovery, HIR constructs `StmtKind::Semi(Err(..))`. The suggestion path then uses `stmt.span.with_lo(tail_expr.span.hi())` to target the semicolon, but `stmt.span == tail_expr.span` so the derived span is empty/invalid.
2026-02-04 08:12:42 +01:00
Jonathan Brouwer 89594620f2 Rollup merge of #151893 - Zoxc:query-mod-move, r=nnethercote
Move the query list into a new `rustc_middle::queries` module

This moves the query list from `rustc_middle::query` into a new `rustc_middle::queries` module. This splits up the use of the query system from the remaining implementation of it in `rustc_middle::query`, which conceptually belong to `rustc_query_system`.

The goal is to let rustc crates define queries with their own `queries` module, and this makes `rustc_middle` also fit this pattern.

The inner `queries` module used by the macros are renamed to `query_info`, so it doesn't conflict with the new outer name.
2026-02-04 08:12:40 +01:00
cezarbbb dcdffe8d80 link modifier export-symbols: export all global symbols from selected uptream c static libraries 2026-02-04 09:26:21 +08:00
Jonathan Brouwer 2ba557f8e6 Rollup merge of #152059 - sgasho:fix/some-autodiff-tests, r=ZuseZ4
Fix some autodiff tests require Clto=fat

It seems that some tests in tests/run-make/autodiff/type-trees/ require -Clto=fat at least on macos

There are several types of errors in tests/run-make/autodiff now. I fixed the easiest one to reduce the noise. I'll look into another errors after this PR.

I confirmed tests have passed.

```shell
./x test --stage 1 tests/run-make/autodiff/type-trees/array-typetree -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/mixed-struct-typetree -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/nott-flag -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/recursion-typetree -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/scalar-types -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/slice-typetree -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/struct-typetree -- --ignored
./x test --stage 1 tests/run-make/autodiff/type-trees/tuple-typetree -- --ignored
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.11s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.43s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.10s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.14s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.10s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.21s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.34s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.35s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 2.32s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:12
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.12s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 1.05s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.29s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.29s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.09s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.09s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.23s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.14s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 2.37s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:12
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.11s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.81s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.35s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.24s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.10s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.19s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.25s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.15s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 1.34s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:13
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.28s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.38s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.28s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.23s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.49s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.19s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.41s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.36s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 2.30s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:13
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.22s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
   Compiling rustc_session v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_session)
   Compiling rustc_query_system v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_query_system)
   Compiling rustc_parse v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_parse)
   Compiling rustc_middle v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_middle)
   Compiling rustc_attr_parsing v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_attr_parsing)
   Compiling rustc_ast_passes v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_ast_passes)
   Compiling rustc_transmute v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_transmute)
   Compiling rustc_infer v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_infer)
   Compiling rustc_expand v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_expand)
   Compiling rustc_incremental v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_incremental)
   Compiling rustc_mir_dataflow v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_mir_dataflow)
   Compiling rustc_symbol_mangling v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_symbol_mangling)
   Compiling rustc_ast_lowering v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_ast_lowering)
   Compiling rustc_pattern_analysis v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_pattern_analysis)
   Compiling rustc_public_bridge v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_public_bridge)
   Compiling rustc_query_impl v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_query_impl)
   Compiling rustc_monomorphize v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_monomorphize)
   Compiling rustc_public v0.1.0-preview (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_public)
   Compiling rustc_metadata v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_metadata)
   Compiling rustc_trait_selection v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_trait_selection)
   Compiling rustc_builtin_macros v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_builtin_macros)
   Compiling rustc_resolve v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_resolve)
   Compiling rustc_lint v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_lint)
   Compiling rustc_ty_utils v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_ty_utils)
   Compiling rustc_privacy v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_privacy)
   Compiling rustc_codegen_ssa v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_codegen_ssa)
   Compiling rustc_const_eval v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_const_eval)
   Compiling rustc_sanitizers v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_sanitizers)
   Compiling rustc_hir_analysis v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_hir_analysis)
   Compiling rustc_traits v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_traits)
   Compiling rustc_borrowck v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_borrowck)
   Compiling rustc_mir_transform v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_mir_transform)
   Compiling rustc_hir_typeck v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_hir_typeck)
   Compiling rustc_codegen_llvm v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_codegen_llvm)
   Compiling rustc_mir_build v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_mir_build)
   Compiling rustc_passes v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_passes)
   Compiling rustc_interface v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_interface)
   Compiling rustc_driver_impl v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_driver_impl)
   Compiling rustc_driver v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc_driver)
   Compiling rustc-main v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/compiler/rustc)
    Finished `release` profile [optimized] target(s) in 2m 51s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.37s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.17s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.42s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
   Compiling shlex v1.3.0
   Compiling core v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/core)
   Compiling libc v0.2.178
   Compiling object v0.37.3
   Compiling std v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/std)
   Compiling test v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/test)
   Compiling cc v1.2.0
   Compiling compiler_builtins v0.1.160 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/compiler-builtins/compiler-builtins)
   Compiling rustc-std-workspace-core v1.99.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/rustc-std-workspace-core)
   Compiling alloc v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/alloc)
   Compiling adler2 v2.0.1
   Compiling memchr v2.7.6
   Compiling panic_abort v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/panic_abort)
   Compiling rustc-demangle v0.1.27
   Compiling cfg-if v1.0.4
   Compiling rustc-literal-escaper v0.0.7
   Compiling unwind v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/unwind)
   Compiling rustc-std-workspace-alloc v1.99.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/rustc-std-workspace-alloc)
   Compiling panic_unwind v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/panic_unwind)
   Compiling gimli v0.32.3
   Compiling hashbrown v0.16.1
   Compiling std_detect v0.1.5 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/std_detect)
   Compiling miniz_oxide v0.8.9
   Compiling addr2line v0.25.1
   Compiling rustc-std-workspace-std v1.99.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/rustc-std-workspace-std)
   Compiling proc_macro v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/proc_macro)
   Compiling getopts v0.2.24
   Compiling sysroot v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/library/sysroot)
    Finished `dist` profile [optimized] target(s) in 34.54s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.40s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
   Compiling rustdoc v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/src/librustdoc)
   Compiling rustdoc-tool v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/autodiff-rust/rust/src/tools/rustdoc)
    Finished `release` profile [optimized] target(s) in 37.79s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 5 tests
.....

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 456 filtered out; finished in 2.41s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:04:18
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.12s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.71s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.11s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.07s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.09s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.15s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.34s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.28s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 2.04s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:13
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.11s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.82s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.38s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.08s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.09s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.09s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.21s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.14s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 1.37s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:12
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.15s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.37s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.35s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.35s
Building stage1 run_make_support (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.29s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
    Finished `dist` profile [optimized] target(s) in 0.12s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.46s
Building stage1 rustdoc_tool_binary (stage0 -> stage1, aarch64-apple-darwin)
    Finished `release` profile [optimized] target(s) in 0.23s
Testing stage1 with compiletest suite=run-make mode=run-make (aarch64-apple-darwin)

running 1 tests
.

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 460 filtered out; finished in 1.41s

WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148671` or `change-id = "ignore"` at the top of `bootstrap.toml`
NOTE: this message was printed twice to make it more likely to be seen
Build completed successfully in 0:00:12
```
2026-02-03 23:29:58 +01:00
Jonathan Brouwer 9ff335cb8f Rollup merge of #152054 - lapla-cogito:diag_const_trait_impl, r=estebank
Distinguish error message for `#[diagnostic::on_const]` on const trait impls

context: https://github.com/rust-lang/rust/pull/149627#discussion_r2589712535

Sorry for the delay between receiving the review and submitting this patch. I'll ask the original proposer to review it.

r? estebank
2026-02-03 23:29:57 +01:00
Jonathan Brouwer bfc624986f Rollup merge of #148967 - RalfJung:const-eval-preserve-src-padding, r=JonathanBrouwer,traviscross
const-eval: always do mem-to-mem copies if there might be padding involved

This is the final piece of the puzzle for https://github.com/rust-lang/rust/issues/148470: when copying data of a type that has padding, always do a mem-to-mem copy, so that we always preserve the source padding exactly. That prevents rustc implementation choices from leaking into user-visible behavior.

This is technically a breaking change: the example at the top of https://github.com/rust-lang/rust/issues/148470 no longer compiles with this. However, it seems very unlikely that anyone would have depended on this. My main concern is not backwards compatibility, it is performance.

Fixes rust-lang/rust#148470

---

> Actually that seems to be entirely fine, it even helps with some benchmarks! I guess the mem-to-mem codepath is actually faster than the scalar pair codepath for the copy itself. It can slow things down later since now we have to do everything bytewise, but that doesn't show up in our benchmarks and might not be very relevant after all (in particular, it only affects types with padding, so the rather common wide pointers still always use the efficient scalar representation).
>
> So that would be my proposal to for resolving this issue then: to make const-eval behavior consistent, we always copy the padding from the source to the target. IOW, potentially pre-existing provenance in the target always gets overwritten (that part is already in https://github.com/rust-lang/rust/pull/148259), and potentially existing provenance in padding in the source always gets carried over (that's https://github.com/rust-lang/rust/pull/148967). If there's provenance elsewhere in the source our existing handling is fine:
> - If it's in an integer, that's UB during const-eval so we can do whatever.
> - If it's in a pointer, the the fragments must combine back together to a pointer or else we have UB.
> - If it's in a union we just carry it over unchanged.
>
> @traviscross we should check that this special const-eval-only UB is properly reflected in the reference. Currently we have [this](https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html#r-undefined.const-transmute-ptr2int) but that only talks about int2ptr, not about invalid pointer fragments at pointer type. I also wonder if this shouldn't rather be part of ["invalid values"](https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html#r-undefined.validity) to make it clear that this applies recursively inside fields as well.
> EDIT: Reference PR is up at https://github.com/rust-lang/reference/pull/2091.

 _Originally posted by @RalfJung in [#148470](https://github.com/rust-lang/rust/issues/148470#issuecomment-3538447283)_

> Worth noting that this does not resolve the concerns @theemathas had about `-Zextra-const-ub-checks` sometimes causing *more* code to compile. Specifically, with that flag, the behavior changes to "potentially existing provenance in padding in the source never gets carried over". However, it's a nightly-only flag (used by Miri) so while the behavior is odd, I don't think this is a problem.

 _Originally posted by @RalfJung in [#148470](https://github.com/rust-lang/rust/issues/148470#issuecomment-3538450164)_

---

Related:

- https://github.com/rust-lang/rust/issues/148470
- https://github.com/rust-lang/reference/pull/2091
2026-02-03 23:29:55 +01:00
John Kåre Alsaker 247a022957 Fix references and remove inner queries module 2026-02-03 21:32:52 +01:00
Jonathan Brouwer f0e23874b8 Rollup merge of #152050 - GuillaumeGomez:try-fixing-flakyness, r=GuillaumeGomez
Try to fix `rustdoc-gui/globals.goml` flakyness

Part of rust-lang/rust#93784.

Hopefully this one fixes it...

r? ghost
2026-02-03 18:54:52 +01:00
Jonathan Brouwer cb6eb81c91 Rollup merge of #151874 - khyperia:error-unsized-anonconst, r=BoxyUwU
error on unsized AnonConsts

The constant evaluator does not support unsized types, however, unsized AnonConsts were never checked to be Sized, so no errors were generated on them and the constant was attempted to be constant evaluated. This caused the constant evaluator to ICE.

Add a special case for AnonConsts in rustc_hir_typeck, as suggested by @BoxyUwU in rust-lang/rust#137582. There is no checking for `#![feature(unsized_const_params)]` which should eventually revert this check when the feature becomes more implemented.

That issue is assigned to @el-ev but I started looking into this as a jumping off point / motivation to learn some compiler stuff, and I eventually got to the point of fixing it, so I'm submitting a PR anyway. So just a ping/FYI to @el-ev that I'm submitting this, sorry!

There are three relevant github issues to this ICE that I could find:

- fixes rust-lang/rust#137582
- fixes rust-lang/rust#151591

The similar issue rust-lang/rust#104685 is NOT fixed, it might be good to glance at that before verifying this particular fix, to make sure this fix is actually in the right place. (I haven't looked at it much)

r? @BoxyUwU
2026-02-03 18:54:49 +01:00
Jonathan Brouwer d4ea6a9a6b Rollup merge of #151754 - mu001999-contrib:fix/151708, r=BoxyUwU
Check proj's parent is trait or not when checking dyn compatibility

Fixes https://github.com/rust-lang/rust/issues/151708

When checking dyn compatibility, `proj` here may point to free const whose parent is not trait. Then `TraitRef::from_assoc` will call `generics_of` on the wrong parent.

After this change, the following case without `#[type_const]` will still emit ICE same to https://github.com/rust-lang/rust/issues/149066, but different to the ICE reported in https://github.com/rust-lang/rust/issues/151708
```rust
#![feature(min_generic_const_args)]

// #[type_const]
const N: usize = 2;

trait CollectArray {
    fn inner_array(&self) -> [i32; N];
}
```

r? @BoxyUwU
2026-02-03 18:54:48 +01:00
Jonathan Brouwer b3b66b23e6 Rollup merge of #149263 - frank-king:feature/unpin-check, r=BoxyUwU
Forbid manual `Unpin` impls for structurally pinned types

Part of [`pin_ergonomics`](https://github.com/rust-lang/rust/issues/130494). It forbids to `impl Unpin for T` where `T` is an ADT marked with `#[pin_v2]`.
2026-02-03 18:54:47 +01:00
Jonathan Brouwer 46090073b9 Rollup merge of #152039 - Zalathar:context-mismatch, r=chenyukang
coverage: Add a test case for a previously-unknown span mismatch

- This is a revised version of https://github.com/rust-lang/rust/pull/152036.
---

In https://github.com/rust-lang/rust/pull/145643, a defensive check was added to detect spans that unexpectedly don't match the context of the function body span. There was no known way to trigger that condition, so a `debug_assert!` was added to make violations easier to notice.

A way to trigger the condition using nested macro expansions was subsequently found and reported as an ICE (in debug-assertion builds) in https://github.com/rust-lang/rust/issues/147339.

Now that we have a concrete example to investigate, we can remove the `debug_assert!` so that there is no ICE in debug-assertion builds.

- Fixes https://github.com/rust-lang/rust/issues/147339.

r? chenyukang
2026-02-03 18:54:46 +01:00
Takayuki Maeda d329971fc2 avoid semicolon suggestion when tail expr is error
add a link to the issue

fix test stderr
2026-02-04 01:15:51 +09:00
sgasho 6c4abb7fab Fix some autodiff tests require Clto=fat 2026-02-04 00:58:34 +09:00
lapla dfc60ae100 Distinguish error message for #[diagnostic::on_const] on const trait impls 2026-02-04 00:38:04 +09:00
Guillaume Gomez 4e4192aa48 Try to fix rustdoc-gui/globals.goml flakyness 2026-02-03 16:07:25 +01:00
Zalathar 0418f9aa42 coverage: Add a test case for a previously-unknown span mismatch 2026-02-03 22:53:38 +11:00
Stuart Cook 63303aaa65 Rollup merge of #151919 - JayanAXHF:fix_color_always, r=nnethercote
fix: Make `--color always` always print color with `--explain`

Fixes rust-lang/rust#151643.

This changes the behaviour of `handle_explain` in `rustc_driver_impl` to always output color when the `--color always` flag is set.

r? @tgross35
2026-02-03 21:58:41 +11:00
Stuart Cook 6d064d9b90 Rollup merge of #151691 - Enselic:dylib-only-for-prefer-dynamic-v2, r=jdonszelmann
compiletest: Don't assume `aux-crate` becomes a `*.so` with `no-prefer-dynamic`

Since it does not make sense to do so. If someone prefers no dynamic stuff, the last thing they want to look for is an .so file. Also add a regression test. Without the fix, the test fails with:

    error: test compilation failed although it shouldn't!
    --- stderr -------------------------------
    error: extern location for no_prefer_dynamic_lib does not exist: .../auxiliary/libno_prefer_dynamic_lib.so
      --> .../no-prefer-dynamic-means-no-so.rs:9:5
       |
    LL |     no_prefer_dynamic_lib::return_42();
       |     ^^^^^^^^^^^^^^^^^^^^^

### Needed by:
-  https://github.com/rust-lang/rust/pull/150591 because of https://github.com/rust-lang/rust/issues/151271. But IMHO this PR makes sense on its own.

### Must wait for:
- [x] https://github.com/rust-lang/rust/pull/151695
2026-02-03 21:58:40 +11:00
Martin Nordholts f14e3ee38f compiletest: Don't assume aux-crate becomes a *.so with no-prefer-dynamic
Since it does not make sense to do so. If someone prefers no dynamic
stuff, the last thing they want to look for is an `.so` file. Also add a
regression test. Without the fix, the test fails with:

    error: test compilation failed although it shouldn't!
    --- stderr -------------------------------
    error: extern location for no_prefer_dynamic_lib does not exist: .../auxiliary/libno_prefer_dynamic_lib.so
      --> .../no-prefer-dynamic-means-no-so.rs:9:5
       |
    LL |     no_prefer_dynamic_lib::return_42();
       |     ^^^^^^^^^^^^^^^^^^^^^
2026-02-03 06:00:28 +01:00
bors 46c86aef65 Auto merge of #152025 - jhpratt:rollup-Kxb6k3Y, r=jhpratt
Rollup of 11 pull requests

Successful merges:

 - rust-lang/rust#151378 (Codegen tests for Arm Cortex-R82)
 - rust-lang/rust#151936 (Move the `fingerprint_style` special case into `DepKindVTable` creation)
 - rust-lang/rust#152018 (Move bigint helper tracking issues)
 - rust-lang/rust#151958 (Add codegen test for SLP vectorization)
 - rust-lang/rust#151974 (Update documentation for `Result::ok()`)
 - rust-lang/rust#151975 (Work around rustfmt giving up on a large expression)
 - rust-lang/rust#151990 (Fix missing unused_variables lint when using a match guard)
 - rust-lang/rust#151995 (stabilize ptr_as_ref_unchecked)
 - rust-lang/rust#151999 (attribute parsing: pass recovery mode to Parser.)
 - rust-lang/rust#152009 (Port rustc_preserve_ub_checks to attr parser)
 - rust-lang/rust#152022 (rustc-dev-guide subtree update)

Failed merges:

 - rust-lang/rust#151968 (Remove `HasDepContext` by merging it into `QueryContext`)
2026-02-03 04:44:02 +00:00
Jacob Pratt cbebacda0b Rollup merge of #151999 - mejrs:ignore_nonmeta_v2, r=JonathanBrouwer
attribute parsing: pass recovery mode to Parser.

Fixes https://github.com/rust-lang/rust/issues/151996
2026-02-02 23:12:08 -05:00
Jacob Pratt b73b8223d8 Rollup merge of #151990 - eggyal:unused-in-match-with-guard, r=nnethercote
Fix missing unused_variables lint when using a match guard

Within a binding pattern match guard, only real reads of a bound local impact its liveness analysis - not the fake read that is injected.

Fixes rust-lang/rust#151983
r? compiler
2026-02-02 23:12:07 -05:00
Jacob Pratt e2c5b89d2a Rollup merge of #151958 - chahar-ritik:add-slp-vectorization-test, r=jieyouxu
Add codegen test for SLP vectorization

close: rust-lang/rust#142519

This PR adds a codegen regression test for rust-lang/rust#142519. A regression in LLVM to fail to auto-vectorize, leading to significant performance loss.

The SLP vectorizer correctly groups the 4-byte operations into <4 x i8> vectors.

The loop state is maintained in SIMD registers (phi <4 x i8>).

The test remains robust across architectures (AArch64 vs x86_64) by allowing flexible store types (i32 or <4 x i8>).
2026-02-02 23:12:05 -05:00
Jacob Pratt b75cdc98ba Rollup merge of #152018 - clarfonthey:bigint-tracking-issues, r=scottmcm
Move bigint helper tracking issues

Closes rust-lang/rust#85532.

This splits the remainder of the `bigint_helper_methods` tracking issue into three issues:

* `signed_bigint_helpers`: rust-lang/rust#151989
* `widening_mul`: rust-lang/rust#152016
* `const_unsigned_bigint_helpers`: rust-lang/rust#152015

Note that the existing stable methods were merged under the `unsigned_bigint_helpers` feature as part of rust-lang/rust#144494.
2026-02-02 23:12:05 -05:00
Jacob Pratt c908ea27fd Rollup merge of #151378 - ferrocene:add-cortexr82-testing, r=jdonszelmann
Codegen tests for Arm Cortex-R82

This PR adds checks to the `aarch64v8r-unknown-none` target to verify that if the Cortex-R82 CPU is enabled (with `-Ctarget-cpu=cortex-r82`), that the appropriate additional AArch64 features are enabled.

This is important because Cortex-R82 is (currently) the only processor implementing Armv8-R AArch64 and it implements a number of Armv8 features over and above the baseline for the architecture. Many of these features are of interest to safety-critical firmware development (for example `FEAT_RASv1p1`, which adds support for the *RAS Common Fault Injection Model Extension*) and so we anticipate them being enabled when building such firmware.

We are offering these tests upstream in-lieu of a full Cortex-R82 specific target because we understand the Project has a preference for architecture-baseline targets over CPU-specific targets.

~~This PR builds on and requires https://github.com/rust-lang/rust/pull/150863, but we've pulled them out as a separate PR.~~ That PR has been merged.

## Ownership

This PR was developed by Ferrous Systems on behalf of Arm. Arm is the owner of these changes.
2026-02-02 23:12:04 -05:00
ltdk 28feae0c87 Move bigint helper tracking issues 2026-02-02 18:45:26 -05:00
khyperia c7c3266b8a error on unsized AnonConsts 2026-02-02 20:48:14 +01:00
Jonathan Brouwer a34cb947b9 Rollup merge of #151909 - chenyukang:yukang-fix-151607-disjoint-spans, r=Kivooeo
Skip overlapping spans in argument error suggestions

Fixes rust-lang/rust#151607
2026-02-02 18:52:15 +01:00
Jonathan Brouwer 5e1db4491b Rollup merge of #151872 - JonathanBrouwer:diag3, r=Kivooeo
Add inline syntax for diagnostic messages

This PR adds the new inline diagnostics syntax needed for rust-lang/rust#151366.
The syntax itself is briefly described in the MCP: https://github.com/rust-lang/compiler-team/issues/959

To test these changes:
* I added quite a few uitests
* I converted the first crate `rustc_attr_parsing` to the new syntax in a separate PR: https://github.com/rust-lang/rust/pull/151944

r? @Kivooeo
2026-02-02 18:52:14 +01:00
Jonathan Brouwer 894d05d323 Rollup merge of #151870 - jdonszelmann:regression-test-alias-relate, r=lcnr
regression test for alias-relate changes in lub

r? @lcnr
2026-02-02 18:52:14 +01:00
Jonathan Brouwer 0a7697c23d Rollup merge of #151695 - Enselic:proc-macro-priv-v2, r=Zalathar
compiletest: Support `--extern` modifiers with `proc-macro` directive

So that the `src/tools/compiletest/src/directives/auxiliary/tests.rs` test does not have to (ab)use the `aux-crate` directive for this purpose.

This is very edge-casey so I don't think we should document this in rustc-dev-guide. Mentioning it will confuse more than it helps. If someone needs to do this they will look at the code and easily find the functionality.

This is a bit hacky since `--extern priv:pm.rs` is not valid, but we can make our directives work however we want. And I think this is a fine pragmatic approach. Doing it "the right way" would be a lot of work for not much gain. Plus, that work can be done incrementally in small steps in the future if wanted.

r? @Zalathar

---

Follow-up to:

- https://github.com/rust-lang/rust/pull/151353
- https://github.com/rust-lang/rust/pull/151670

### Unblocks:
- https://github.com/rust-lang/rust/pull/151691, because without this fix that test fails (see https://github.com/rust-lang/rust/pull/151691#issuecomment-3800315302)
2026-02-02 18:52:12 +01:00
Jorge Aparicio bdd19d0db3 clarity that the neon extension is present 2026-02-02 15:13:38 +01:00
mejrs aef8217943 Pass Recovery down to rustc_parse's Parser 2026-02-02 15:01:34 +01:00
Jana Dönszelmann 629ff9b4aa Update tests/ui/traits/next-solver/generalize/relate-alias-in-lub.rs
Co-authored-by: lcnr <rust@lcnr.de>
2026-02-02 12:48:42 +01:00
Vadim Petrochenkov c0393cf8db resolve: Report more early resolution ambiguities for imports
The new ambiguities are reported when the import's visibility is ambiguous and may depend on the resolution/expansion order.
2026-02-02 14:44:13 +03:00
Ritik Chahar 8476e893e7 Update min-llvm-version: 22
Co-authored-by: Nikita Popov <github@npopov.com>
2026-02-02 16:47:09 +05:30
Alan Egerton 5aba6b1635 Fix missing unused_variables lint when using a match guard
Within a binding pattern match guard, only real reads of a bound local
impact its liveness analysis - not the fake read that is injected.
2026-02-02 10:57:54 +00:00
ritik chahar 6176945223 fix: remove space for tidy and only for x86_64 2026-02-02 16:05:08 +05:30
ritik chahar 0830a5a928 fix: add min-llvm-version 2026-02-02 15:44:50 +05:30