Commit Graph

44841 Commits

Author SHA1 Message Date
Michael Goulet
48b7e38c06 Move outlives env computation into methods 2025-01-28 18:55:03 +00:00
Michael Goulet
2b8930c71c Consolidate OutlivesEnv construction with resolve_regions 2025-01-28 18:55:03 +00:00
Marijn Schouten
3026545ab5 parse_format optimize import use 2025-01-28 19:33:00 +01:00
Michael Goulet
7e68422859 Properly check that array length is valid type during built-in unsizing in index 2025-01-28 17:52:28 +00:00
Matthias Krüger
995eb5c929 Rollup merge of #136149 - cuviper:rustc-rayon-indexmap, r=compiler-errors
Flip the `rustc-rayon`/`indexmap` dependency order

[`rustc-rayon v0.5.1`](https://github.com/rust-lang/rustc-rayon/pull/14) added `indexmap` implementations that will allow `indexmap` to drop its own "internal-only" implementations.

(This is separate from `indexmap`'s implementation for normal `rayon`.)
2025-01-28 18:17:29 +01:00
Matthias Krüger
d43e78d6ea Rollup merge of #136071 - wowinter13:clippy-add-diagnostic-items, r=flip1995
[Clippy] Add vec_reserve & vecdeque_reserve diagnostic items

I’m currently working on reviving this lint (https://github.com/rust-lang/rust-clippy/pull/10157), and there was [a comment](https://github.com/rust-lang/rust-clippy/pull/10157#discussion_r1091591057) from ``@flip1995`` regarding the necessity of adding new diagnostic items.
2025-01-28 18:17:26 +01:00
Matthias Krüger
9f22f35876 Rollup merge of #136066 - compiler-errors:local-spans, r=lcnr
Pass spans to `perform_locally_in_new_solver`

Nothing changes yet, but we may be able to use these spans in the future once we start dealing w the response region constraints better.

r? lcnr
2025-01-28 18:17:25 +01:00
Matthias Krüger
4cb1342199 Rollup merge of #136055 - fee1-dead-contrib:push-ovmyztlkptmk, r=RalfJung
Implement MIR const trait stability checks

Addresses https://github.com/rust-lang/project-const-traits/issues/16

cc ``@rust-lang/project-const-traits``
r? ``@RalfJung``
2025-01-28 18:17:24 +01:00
Taiki Endo
e586382feb Support clobber_abi in BPF inline assembly 2025-01-29 02:14:25 +09:00
klensy
dc62b8fd11 replaces few consts with statics to reduce readonly section 2025-01-28 17:38:22 +03:00
Boxy
356b2aa422 "normalize" signature before checking mentions self 2025-01-28 14:11:29 +00:00
Matthias Krüger
21ddd7ab89 Rollup merge of #135748 - compiler-errors:len-2, r=RalfJung,oli-obk
Lower index bounds checking to `PtrMetadata`, this time with the right fake borrow semantics 😸

Change `Rvalue::RawRef` to take a `RawRefKind` instead of just a `Mutability`. Then introduce `RawRefKind::FakeForPtrMetadata` and use that for lowering index bounds checking to a `PtrMetadata`. This new `RawRefKind::FakeForPtrMetadata` acts like a shallow fake borrow in borrowck, which mimics the semantics of the old `Rvalue::Len` operation we're replacing.

We can then use this `RawRefKind` instead of using a span desugaring hack in CTFE.

cc ``@scottmcm`` ``@RalfJung``
2025-01-28 14:23:22 +01:00
Matthias Krüger
c0005f1560 Rollup merge of #133151 - tyrone-wu:trim-fn-ptr-whitespace, r=compiler-errors
Trim extra whitespace in fn ptr suggestion span

Trim extra whitespace when suggesting removal of invalid qualifiers when parsing function pointer type.

Fixes: #133083

---

I made a comment about the format of the diagnostic error message in https://github.com/rust-lang/rust/issues/133083#issuecomment-2480047875. I think the `.label` may be a little redundant if the diagnostic only highlights the bad qualifier instead of the entire `TyKind::BareFn` span. If it makes sense, I can include it in this PR.
2025-01-28 14:23:20 +01:00
mu001999
4203627ced Suggest considering casting fn item as fn pointer in more cases 2025-01-28 20:17:36 +08:00
SpecificProtagonist
eee9df43e6 miri: optimize zeroed alloc
Co-authored-by: Ralf Jung <post@ralfj.de>
2025-01-28 12:50:02 +01:00
bors
aa6f5ab18e Auto merge of #133929 - saethlin:remove-inline-in-all-cgus, r=nnethercote
Remove -Zinline-in-all-cgus and clean up tests/codegen-units/

Implementation of https://github.com/rust-lang/compiler-team/issues/814

I've taken some liberties with cleaning up the CGU partitioning tests, because that's the only place this flag was used and also mattered. I've often fought a lot with the contents of `tests/codegen-units` and it has never been clear to me when a test failure indicates a problem with my changes as opposed to a test just needing to be manually blessed. Hopefully the combination of the new README, new comments, and using `-Zprint-mono-items=lazy` in the partitioning tests improves that.

I've also deleted some of the `tests/run-make/sepcomp` tests. I think all the "sepcomp" tests have been obviated for years by better-designed (less flaky, clearer failures) test suites, but here I'm just deleting the ones I'm confident in.
2025-01-28 09:43:03 +00:00
Oli Scherer
d62f885a8e Edit the inputs to const == val check instead of duplicating logic 2025-01-28 08:55:54 +00:00
Oli Scherer
fd6713fce1 Make mir dumps more readable 2025-01-28 08:19:31 +00:00
bors
66d6064f9e Auto merge of #134290 - tgross35:windows-i128-callconv, r=bjorn3,wesleywiser
Windows x86: Change i128 to return via the vector ABI

Clang and GCC both return `i128` in xmm0 on windows-msvc and windows-gnu. Currently, Rust returns the type on the stack. Add a calling convention adjustment so we also return scalar `i128`s using the vector ABI, which makes our `i128` compatible with C.

In the future, Clang may change to return `i128` on the stack for its `-msvc` targets (more at [1]). If this happens, the change here will need to be adjusted to only affect MinGW.

Link: https://github.com/rust-lang/rust/issues/134288 (does not fix) [1]

try-job: x86_64-msvc
try-job: x86_64-msvc-ext1
try-job: x86_64-mingw-1
try-job: x86_64-mingw-2
2025-01-28 06:11:13 +00:00
Taiki Endo
7f83f8ae72 Reject unsound toggling of Arm atomics-32 target feature 2025-01-28 14:11:33 +09:00
Deadbeef
4aaf467e26 Implement MIR const trait stability checks 2025-01-28 05:01:12 +00:00
Ben Kimock
bf9df97660 Remove -Zinline-in-all-cgus and clean up CGU partitioning tests 2025-01-27 23:48:47 -05:00
Ralf Jung
3f6ffa1462 update comments 2025-01-28 04:40:42 +01:00
Ralf Jung
93ee180cfa ABI-required target features: warn when they are missing in base CPU (rather than silently enabling them) 2025-01-28 04:40:42 +01:00
León Orell Valerian Liehr
0a9ee02d0a GCI: Don't try to collect mono items inside overly generic free const items 2025-01-28 04:00:37 +01:00
Ralf Jung
bc135aaa98 interpret: is_alloc_live: check global allocs last 2025-01-28 02:58:44 +01:00
Michael Goulet
eeecb56b73 Represent the raw pointer for a array length check as a new kind of fake borrow 2025-01-28 00:00:33 +00:00
Michael Goulet
057313b7a6 Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung"
This reverts commit 122a55bb44.
2025-01-27 23:42:47 +00:00
Michael Goulet
1cbb062e54 Type level consts can show up in MIR type checker 2025-01-27 23:32:48 +00:00
Caleb Zulawski
44b2e6c07d Stabilize target_feature_11 2025-01-27 23:44:47 +01:00
Urgau
6b7b5475f5 Adjust compiler for HashMap::get_many_mut stabilization 2025-01-27 19:47:06 +01:00
Josh Stone
314238f92e Flip the rustc-rayon/indexmap dependency order
[`rustc-rayon v0.5.1`](https://github.com/rust-lang/rustc-rayon/pull/14)
added `indexmap` implementations that will allow `indexmap` to drop its
own "internal-only" implementations.

(This is separate from `indexmap`'s implementation for normal `rayon`.)
2025-01-27 10:14:37 -08:00
bors
ebcf860e73 Auto merge of #136135 - GuillaumeGomez:rollup-1ik636d, r=GuillaumeGomez
Rollup of 10 pull requests

Successful merges:

 - #135773 (Clarify WindowsMut (Lending)Iterator)
 - #135807 (Implement phantom variance markers)
 - #135876 (fix doc for std::sync::mpmc)
 - #135988 (Add a workaround for parallel rustc crashing when there are delayed bugs)
 - #136037 (Mark all NuttX targets as tier 3 target and support the standard library)
 - #136064 (Add a suggestion to cast target_feature fn items to fn pointers.)
 - #136082 (Incorporate `iter_nodes` into `graph::DirectedGraph`)
 - #136112 (Clean up all dead files inside `tests/ui/`)
 - #136114 (Use identifiers more in diagnostics code)
 - #136118 (Change `collect_and_partition_mono_items` tuple return type to a struct)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-27 17:50:34 +00:00
Tyrone Wu
5082fd8b1e Trim extra whitespace in fn ptr suggestion span
Trim extra whitespace when suggesting removal of invalid qualifiers when
parsing function pointer type.

Fixes: #133083

Signed-off-by: Tyrone Wu <wudevelops@gmail.com>
2025-01-27 17:17:22 +00:00
Taiki Endo
56c6ffbbda Use +secure-plt for powerpc-unknown-linux-gnu{,spe} 2025-01-28 02:15:15 +09:00
Guillaume Gomez
3d02ce7d6b Rollup merge of #136118 - oli-obk:push-qsslxsopnrmr, r=Zalathar
Change `collect_and_partition_mono_items` tuple return type to a struct

https://github.com/rust-lang/rust/pull/133429 will add a new field to this tuple, so it seems prudent to turn it into a struct first to avoid confusion about what the tuple elements mean.
2025-01-27 15:38:31 +01:00
Guillaume Gomez
03fdcffa1e Rollup merge of #136114 - compiler-errors:more-idents, r=jieyouxu
Use identifiers more in diagnostics code

This should make the diagnostics code slightly more correct when rendering idents in mixed crate edition situations. Kinda a no-op, but a cleanup regardless.

r? oli-obk or reassign
2025-01-27 15:38:30 +01:00
Guillaume Gomez
f29979aebe Rollup merge of #136082 - Zalathar:iter-nodes, r=oli-obk
Incorporate `iter_nodes` into `graph::DirectedGraph`

This helper method iterates over all node IDs in the dense range `0..num_nodes`.

In practice, we have a lot of graph-algorithm code that already assumes that nodes are densely numbered, by using `num_nodes` to allocate per-node indexed data structures. So I don't think this is actually a substantial change to the de-facto semantics of `graph::DirectedGraph`.

---

Resolves a FIXME from #135481.
2025-01-27 15:38:28 +01:00
Guillaume Gomez
06df5cddc2 Rollup merge of #136064 - veluca93:tf11-fntrait-note, r=oli-obk
Add a suggestion to cast target_feature fn items to fn pointers.

See https://github.com/rust-lang/rust/pull/134090#issuecomment-2612197095 for the motivation behind this suggestion.

r? oli-obk
2025-01-27 15:38:27 +01:00
Guillaume Gomez
2a2e5e8209 Rollup merge of #136037 - no1wudi:doc, r=jieyouxu
Mark all NuttX targets as tier 3 target and support the standard library

The support for standard library added by https://github.com/rust-lang/rust/pull/130595.
2025-01-27 15:38:26 +01:00
Guillaume Gomez
a02e78871d Rollup merge of #135988 - bjorn3:workaround_parallel_rustc_crash, r=lqd
Add a workaround for parallel rustc crashing when there are delayed bugs

This doesn't fix the root cause of this crash, but at least stops it from happening for the time being.

Workaround for https://github.com/rust-lang/rust/issues/135870
2025-01-27 15:38:25 +01:00
bors
0cffe5cb95 Auto merge of #136098 - jyn514:linker-output, r=saethlin
Downgrade `linker-warnings` to allow-by-default

This needs more time to bake before we turn it on. Turning it on early risks people silencing the warning indefinitely, before we have the chance to make it less noisy.

cc https://github.com/rust-lang/rust/issues/136096
fixes https://github.com/rust-lang/rust/issues/136086#issuecomment-2614476308

r? `@saethlin` cc `@Noratrieb` `@bjorn3`

`@rustbot` label A-linkage L-linker_messages
2025-01-27 14:36:51 +00:00
Trevor Gross
a44a20ee4a Windows x86: Change i128 to return via the vector ABI
Clang and GCC both return `i128` in xmm0 on windows-msvc and
windows-gnu. Currently, Rust returns the type on the stack. Add a
calling convention adjustment so we also return scalar `i128`s using the
vector ABI, which makes our `i128` compatible with C.

In the future, Clang may change to return `i128` on the stack for its
`-msvc` targets (more at [1]). If this happens, the change here will
need to be adjusted to only affect MinGW.

Link: https://github.com/rust-lang/rust/issues/134288
2025-01-27 12:12:59 +00:00
bors
f753850659 Auto merge of #136024 - GuillaumeGomez:cg_gcc-subtree, r=GuillaumeGomez
Update rustc_codegen_gcc subtree

cc `@antoyo`
2025-01-27 11:51:28 +00:00
Oli Scherer
e1e2e17d20 Use an operand instead of a place that is always turned into an operand 2025-01-27 10:36:30 +00:00
Oli Scherer
a9213c27ad Deduplicate operand creation between scalars, non-scalars and string patterns 2025-01-27 10:24:05 +00:00
Oli Scherer
b24f674520 Change collect_and_partition_mono_items tuple return type to a struct 2025-01-27 09:38:12 +00:00
Trevor Gross
395f0c9ecd Stabilize const_black_box
This has been unstably const since [1], but a tracking issue was never
created. Per discussion on Zulip [2], there should not be any blockers
to making this const-stable. The function does not provide any
functionality at compile time but does allow code reuse between const-
and non-const functions, so stabilize it here.

[1]: https://github.com/rust-lang/rust/pull/92226
[2]: https://rust-lang.zulipchat.com/#narrow/channel/146212-t-compiler.2Fconst-eval/topic/const_black_box
2025-01-27 07:54:58 +00:00
bors
55459598c2 Auto merge of #136116 - fmease:rollup-c8pk3mj, r=fmease
Rollup of 8 pull requests

Successful merges:

 - #126604 (Uplift `clippy::double_neg` lint as `double_negations`)
 - #135158 (Add `TooGeneric` variant to `LayoutError` and emit `Unknown`)
 - #135635 (Move `std::io::pipe` code into its own file)
 - #136072 (add two old crash tests)
 - #136079 (compiler_fence: fix example)
 - #136091 (Add some tracing to core bootstrap logic)
 - #136097 (rustc_ast: replace some len-checks + indexing with slice patterns etc.)
 - #136101 (triagebot: set myself on vacation)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-27 06:54:42 +00:00
bors
633a3fe36d Auto merge of #135937 - bjorn3:separate_coretests_crate, r=jieyouxu,tgross35
Put the core unit tests in a separate coretests package

Having standard library tests in the same package as a standard library crate has bad side effects. It causes the test to have a dependency on a locally built standard library crate, while also indirectly depending on it through libtest. Currently this works out fine in the context of rust's build system as both copies are identical, but for example in cg_clif's tests I've found it basically impossible to compile both copies with the exact same compiler flags and thus the two copies would cause lang item conflicts.

This PR moves the tests of libcore to a separate package which doesn't depend on libcore, thus preventing the duplicate crates even when compiler flags don't exactly match between building the sysroot (for libtest) and building the test itself. The rest of the standard library crates do still have this issue however.
2025-01-27 03:57:37 +00:00