Commit graph

301658 commits

Author SHA1 Message Date
Romain Perier
d37fae309d Pass -Werror when building the LLVM wrapper
Enabling warning_into_errors() only whether it's in rust-lang/rust CI,
so deprecated uses of LLVM methods can be treated as errors.
2025-08-07 20:30:18 +02:00
bors
919c409243 Auto merge of #144577 - oli-obk:wrapping-niche, r=scottmcm
Pick the largest niche even if the largest niche is wrapped around

fixes rust-lang/rust#144388

r? `@scottmcm`
2025-07-30 02:57:04 +00:00
bors
c8bb4e8a12 Auto merge of #144658 - jhpratt:rollup-jdzhz27, r=jhpratt
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#144034 (tests: Test line number in debuginfo for diverging function calls)
 - rust-lang/rust#144510 (Fix Ord, Eq and Hash implementation of panic::Location)
 - rust-lang/rust#144583 (Enable T-compiler backport nomination)
 - rust-lang/rust#144586 (Update wasi-sdk to 27.0 in CI)
 - rust-lang/rust#144605 (Resolve: cachify `ExternPreludeEntry.binding` through a `Cell`)
 - rust-lang/rust#144632 (Update some tests for LLVM 21)
 - rust-lang/rust#144639 (Update rustc-perf submodule)
 - rust-lang/rust#144640 (Add support for the m68k architecture in 'object_architecture')

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-29 23:53:04 +00:00
Jacob Pratt
72f4ff2c45
Rollup merge of #144640 - FractalFir:m68k_arch, r=Urgau
Add support for the m68k architecture in 'object_architecture'

This is a tiny PR that adds the m68k architecture to `object_architecture`. This allows us to build rmeta files for that ISA(we use the object crate to pack metadata into object files).
2025-07-29 18:55:22 -04:00
Jacob Pratt
322686de5d
Rollup merge of #144639 - Kobzol:x-perf-tui, r=lqd
Update rustc-perf submodule

Mostly to include https://github.com/rust-lang/rustc-perf/pull/2204.
2025-07-29 18:55:21 -04:00
Jacob Pratt
bd40dd6c61
Rollup merge of #144632 - nikic:llvm-21-tests, r=durin42
Update some tests for LLVM 21

Fixes https://github.com/rust-lang/rust/issues/144604.
Fixes https://github.com/rust-lang/rust/issues/144606.

r? `@durin42`
2025-07-29 18:55:21 -04:00
Jacob Pratt
0912d66c7f
Rollup merge of #144605 - LorrensP-2158466:cache-extern-prelude, r=petrochenkov
Resolve: cachify `ExternPreludeEntry.binding` through a `Cell`

Provides interior mutability to the `binding` field of `ExternPreludeEntry` as this field behaves like a cache. Per [zulip thread](https://rust-lang.zulipchat.com/#narrow/channel/421156-gsoc/topic/Project.3A.20Parallel.20Macro.20Expansion/near/531390914).

A little preparatory work for batched import resolution, which is part of [#gsoc > Project: Parallel Macro Expansion](https://rust-lang.zulipchat.com/#narrow/channel/421156-gsoc/topic/Project.3A.20Parallel.20Macro.20Expansion).

r? `@petrochenkov`
2025-07-29 18:55:20 -04:00
Jacob Pratt
79ad87e7ee
Rollup merge of #144586 - alexcrichton:update-weasi-sdk, r=Mark-Simulacrum
Update wasi-sdk to 27.0 in CI

This updates the wasi-sdk used in CI to build release binaries and run CI with. No major motivation beyond keeping things up-to-date and following the development of wasi-sdk.
2025-07-29 18:55:19 -04:00
Jacob Pratt
53347802d2
Rollup merge of #144583 - apiraino:enable-t-compiler-backport-nomination, r=jieyouxu,Urgau
Enable T-compiler backport nomination

This patches the triagebot.toml so that it will trigger a backport label on pull requests fixing regressions. Applying a backport label will trigger creating a Zulip thread. For now the configuration only for `T-compiler` labeled regressions.

Comments in the code explain how it works. Documentation [on the forge](https://forge.rust-lang.org/triagebot/backport.html).

```
[backport.foo]

# The pull request MUST have one of these labels
required_pr_labels = ["T-compiler"]

# The regression MUST have this label
required_issue_label = "regression-from-stable-to-beta"

# if the above conditions matches, the PR will receive these labels
add_labels = ["beta-nominated"]
```

Anything to think about before merging this?

thanks for a review
2025-07-29 18:55:19 -04:00
Jacob Pratt
48dfddd39e
Rollup merge of #144510 - orlp:fix-location-ord, r=ibraheemdev
Fix Ord, Eq and Hash implementation of panic::Location

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

Now properly compares/hashes the filename rather than the pointer to the string.
2025-07-29 18:55:18 -04:00
Jacob Pratt
56bf50df12
Rollup merge of #144034 - Enselic:diverging-function-call-debuginfo, r=wesleywiser
tests: Test line number in debuginfo for diverging function calls

Closes rust-lang/rust#59558 which just [E-needs-test](https://github.com/rust-lang/rust/issues/59558#issuecomment-1322236891).

The bug seems to have been fixed in **nightly-2021-05-10**:

```sh
for toolchain in nightly-2021-05-09 \
                 nightly-2021-05-10 \
                 1.88; do
    echo -e "\nWith $toolchain:"
    rustc +$toolchain tests/codegen/diverging-function-call-debuginfo.rs --emit llvm-ir -o /tmp/out.ll -g -Clto -Copt-level=0
    build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck --input-file /tmp/out.ll tests/codegen/diverging-function-call-debuginfo.rs --check-prefix=CHECK --dump-input-context 10 2>/dev/null && echo OK || echo FAIL
done
```

```
With nightly-2021-05-09:
FAIL

With nightly-2021-05-10:
OK

With 1.88:
OK
```

which gives the following list of candidate commits. Not clear which one it is exactly but it doesn't matter much since we can confirm that the test works. I have confirmed locally that with **nightly-2021-05-09** we get `line: 0` for the last call.

<details>
<summary>click to expand</summary>

```
$ git log ^881c1ac408 ca82264ec7 --no-merges --oneline
```
f25aa5767f Remove unused `opt_span_warn` function
ebbc949575 Note why `Handler::fatal` is different from `Sesssion::fatal`
96509b4835 Make `Diagnostic::span_fatal` unconditionally raise an error
e49f4471aa Remove some unnecessary uses of `struct_span_fatal`
955fdaea4a Rename `Parser::span_fatal_err` -> `Parser::span_err`
4b7c8b0b53 Add `#[track_caller]` to `FakeDefId::expect_real()`
ba13225ba1 Remove `FakeDefId::expect_local()`
020d83d9f5 Enable `-W semicolon_in_expressions_from_macros` in bootstrap
1b928ff8f8 Update LLVM submodule
c2b15a6b64 Support -C passes in NewPM
5519cbfe33 Don't force -O1 with ThinLTO
7c4989ab70 Drop -opt-bisect-limit=0 flag from test
db140de8f2 Explicitly register GCOV profiling pass as well
5ecbe7fcf8 Explicitly register instrprof pass
0318883cd6 Make -Z new-llvm-pass-manager an Option<bool>
0367e24f94 Avoid predecessors having Drop impls

</details>
2025-07-29 18:55:18 -04:00
bors
ba7e63b638 Auto merge of #144393 - heiher:str-contains-lsx, r=tgross35
LoongArch64 LSX fast-path for `str.contains(&str)`

Benchmark results with LLVM 21 on LA664:

```
OLD:
test bench_is_contained_in ... bench:          43.63 ns/iter (+/- 0.04)

NEW:
test bench_is_contained_in ... bench:          12.81 ns/iter (+/- 0.01)
```
2025-07-29 20:44:32 +00:00
Orson Peters
05da623016 Fix Ord, Eq and Hash implementation of panic::Location
Faster equality compare

Add tests

Add missing files for tests
2025-07-29 22:15:44 +02:00
bors
686bc1c5f9 Auto merge of #144557 - cjgillot:lower-more-span, r=compiler-errors
Complete span AST lowering.

r? `@ghost`
2025-07-29 17:39:48 +00:00
Martin Nordholts
307fd41123 tests: Test line number in debuginfo for diverging function calls 2025-07-29 18:59:09 +02:00
Alex Crichton
77fc593a6a Update wasi-sdk to 27.0 in CI
This updates the wasi-sdk used in CI to build release binaries and run
CI with. No major motivation beyond keeping things up-to-date and
following the development of wasi-sdk.
2025-07-29 08:23:22 -07:00
Jakub Beránek
b60026ab42
Remove no longer needed handling of nonstandard licenses 2025-07-29 16:41:44 +02:00
Jakub Beránek
ab4024eb31
Update license exceptions for rustc-perf 2025-07-29 16:41:10 +02:00
Jakub Beránek
d1a877aac2
Improve tidy error on dependency license exceptions 2025-07-29 16:40:41 +02:00
Jakub Beránek
0b807fc1af
Update rustc-perf submodule 2025-07-29 16:18:52 +02:00
Oli Scherer
219bad4946 Reuse sign_extend helper 2025-07-29 14:17:48 +00:00
Oli Scherer
75bdbf25e3 Pick the largest niche even if the largest niche is wrapped around 2025-07-29 14:08:15 +00:00
bors
ac0cb05326 Auto merge of #144637 - Zalathar:rollup-t1yo1jy, r=Zalathar
Rollup of 6 pull requests

Successful merges:

 - rust-lang/rust#144560 (coverage: Treat `#[automatically_derived]` as `#[coverage(off)]`)
 - rust-lang/rust#144566 (Simplify `align_of_val::<[T]>(…)` → `align_of::<T>()`)
 - rust-lang/rust#144587 (expand: Micro-optimize prelude injection)
 - rust-lang/rust#144589 (Account for `.yield` in illegal postfix operator message)
 - rust-lang/rust#144615 (Make resolve_fn_signature responsible for its own rib.)
 - rust-lang/rust#144634 (Fix typo in `DropGuard` doc)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-29 13:52:40 +00:00
Stuart Cook
7088bf5cc6
Rollup merge of #144634 - lucaswerkmeister:patch-1, r=lqd
Fix typo in `DropGuard` doc

Follows-up rust-lang/rust#144236 (I happened to see the typo yesterday but didn’t think it should delay the PR’s merge so I kept quiet, sorryyyyy).
2025-07-29 23:50:38 +10:00
Stuart Cook
9bb4087320
Rollup merge of #144615 - cjgillot:fn-sig-rib, r=petrochenkov
Make resolve_fn_signature responsible for its own rib.

Small simplification in late resolver rib bookkeeping.

r? `@petrochenkov`
2025-07-29 23:50:37 +10:00
Stuart Cook
b76cb79e79
Rollup merge of #144589 - compiler-errors:postfix-yield-after-cast, r=petrochenkov
Account for `.yield` in illegal postfix operator message

Fixes rust-lang/rust#144527
2025-07-29 23:50:37 +10:00
Stuart Cook
3d5e2fad1c
Rollup merge of #144587 - petrochenkov:optstdprel, r=nnethercote
expand: Micro-optimize prelude injection

Use `splice` to avoid shifting the other items twice.
Put `extern crate std;` first so it's already resolved when we resolve `::std::prelude::rust_20XX`.
2025-07-29 23:50:36 +10:00
Stuart Cook
826c462c32
Rollup merge of #144566 - scottmcm:align-of-slice, r=oli-obk
Simplify `align_of_val::<[T]>(…)` → `align_of::<T>()`

I spotted this while working on the inliner (rust-lang/rust#144561).  In particular, if [`Layout::for_value`](https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.for_value) inlines, then it can be pretty easy to end up with an `align_of_val::<[T]>` today (demo: <https://rust.godbolt.org/z/Tesnscj4a>) where we can save at least a block, if not more, by using the version that's an rvalue and not a call.
2025-07-29 23:50:35 +10:00
Stuart Cook
f8370285cf
Rollup merge of #144560 - Zalathar:auto-derived, r=compiler-errors
coverage: Treat `#[automatically_derived]` as `#[coverage(off)]`

One of the contributing factors behind https://github.com/rust-lang/rust/issues/141577#issuecomment-3120667286 was the presence of derive-macro-generated code containing nested closures.

Coverage instrumentation already has a heuristic for skipping code marked with `#[automatically_derived]` (rust-lang/rust#120185), because derived code is usually not worth instrumenting, and also has a tendency to trigger vexing edge-case bugs in coverage instrumentation or coverage codegen.

However, the existing heuristic only applied to the associated items directly within an auto-derived impl block, and had no effect on closures or nested items within those associated items.

This PR therefore extends the search for `#[coverage(..)]` attributes to also treat `#[automatically_derived]` as an implied `#[coverage(off)]` for the purposes of coverage instrumentation.

---

This change doesn’t rule out an entire category of bugs, because it only affects code that actually uses the auto-derived attribute. But it should reduce the overall chance of edge-case macro span bugs being observed in the wild.
2025-07-29 23:50:35 +10:00
LorrensP-2158466
c39b4479ce "Cachify" ExternPreludeEntry.binding through a Cell. 2025-07-29 15:47:32 +02:00
WANG Rui
1ceacf55a0 LoongArch64 LSX fast-path for str.contains(&str)
Benchmark results with LLVM 21 on LA664:

```
OLD:
test bench_is_contained_in ... bench:          43.63 ns/iter (+/- 0.04)

NEW:
test bench_is_contained_in ... bench:          12.81 ns/iter (+/- 0.01)
```
2025-07-29 21:38:37 +08:00
Nikita Popov
ccf660f855 Relax check lines in x86-return-float.rs
On LLVM 21 additional %esp adjustments are generated. Don't use
NEXT to allow these.
2025-07-29 14:08:19 +02:00
Lucas Werkmeister
de02a32cf1
Fix typo in DropGuard doc 2025-07-29 13:24:41 +02:00
FractalFir
652b9eb98b Add support for the m68k architecture in 'object_architecture' 2025-07-29 12:42:48 +02:00
bors
7278554d82 Auto merge of #144633 - Zalathar:rollup-h984m13, r=Zalathar
Rollup of 13 pull requests

Successful merges:

 - rust-lang/rust#144022 (Implementation: `#[feature(sync_nonpoison)]`, `#[feature(nonpoison_mutex)]`)
 - rust-lang/rust#144167 (Document why `Range*<&T> as RangeBounds<T>` impls are not `T: ?Sized`, and give an alternative.)
 - rust-lang/rust#144407 (fix(debuginfo): disable overflow check for recursive non-enum types)
 - rust-lang/rust#144451 (fix: Reject upvar scrutinees for `loop_match`)
 - rust-lang/rust#144482 (Add explicit download methods to download module in bootstrap)
 - rust-lang/rust#144500 (thread name in stack overflow message)
 - rust-lang/rust#144511 (tidy: increase performance of auto extra checks feature)
 - rust-lang/rust#144599 (bootstrap: enable tidy auto extra checks on tools profile)
 - rust-lang/rust#144600 (Ensure external paths passed via flags end up in rustdoc depinfo)
 - rust-lang/rust#144609 (feat: Right align line numbers)
 - rust-lang/rust#144623 (miri subtree update)
 - rust-lang/rust#144626 (cc dependencies: clarify comment)
 - rust-lang/rust#144627 (Add a test case for the issue rust-lang/rust#129882)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-29 10:21:52 +00:00
Stuart Cook
ba29c0dc32
Rollup merge of #144627 - jakubadamw:issue-129882, r=lqd
Add a test case for the issue #129882

It ensures that using the `generic_const_exprs` feature in a library crate without enabling it in a dependent crate does not lead to an ICE.

Closes https://github.com/rust-lang/rust/issues/129882.
2025-07-29 20:19:54 +10:00
Stuart Cook
f5c573662e
Rollup merge of #144626 - RalfJung:cc-pin-comment, r=lqd
cc dependencies: clarify comment

This caused confusion in https://github.com/rust-lang/rust/pull/144570

r? ``@jieyouxu``
2025-07-29 20:19:54 +10:00
Stuart Cook
f034a4fa14
Rollup merge of #144623 - RalfJung:miri, r=RalfJung
miri subtree update

Subtree update of `miri` to fc4d9a2720.

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

r? `@ghost`
2025-07-29 20:19:53 +10:00
Stuart Cook
15ddf9c7b3
Rollup merge of #144609 - Muscraft:right-align, r=compiler-errors
feat: Right align line numbers

As part of my work on getting `annotate-snipptes` to be used as `rustc`'s renderer, I realized that `rustc` left-aligned line numbers, while `annotate-snippets` right-aligned them. This PR switches `rustc` to right-align the line numbers, matching `annotate-snippets`. In practice, this change isn't very noticeable in day-to-day output, as it only shows up when a diagnostic span contains line numbers with different lengths (9->10, 99->100, 999->1000, etc.).

`rustc`
```
error[E0412]: cannot find type `F` in this scope
  --> $DIR/ui-testing-optout.rs:92:10
   |
4  | type A = B;
   | ----------- similarly named type alias `A` defined here
...
92 | type E = F;
   |          ^ help: a type alias with a similar name exists: `A`
```
`annotate-snippets`
```
error[E0412]: cannot find type `F` in this scope
  --> $DIR/ui-testing-optout.rs:92:10
   |
 4 | type A = B;
   | ----------- similarly named type alias `A` defined here
...
92 | type E = F;
   |          ^ help: a type alias with a similar name exists: `A`
```

r? ``@compiler-errors``
2025-07-29 20:19:53 +10:00
Stuart Cook
03bb80c254
Rollup merge of #144600 - Noratrieb:rustdoc-dep-info-paths, r=GuillaumeGomez
Ensure external paths passed via flags end up in rustdoc depinfo

rustdoc has many flags to pass external HTML/Markdown/CSS files that end up in the build. These need to be recorded in depinfo so that Cargo will rebuild the crate if they change.
2025-07-29 20:19:52 +10:00
Stuart Cook
0abc0c4201
Rollup merge of #144599 - lolbinarycat:bootstrap-build.tidy-extra-checks-enable-for-tools, r=Kobzol
bootstrap: enable tidy auto extra checks on tools profile

alternative to https://github.com/rust-lang/rust/pull/144461

this won't affect CI or any `./configure` based workflows, and will also not affect every rust contributor like that PR will.  a slower rollout of this feature should reduce disruption if issues are discovered with it.

r? ``@Kobzol``
2025-07-29 20:19:52 +10:00
Stuart Cook
df7da14690
Rollup merge of #144511 - lolbinarycat:tidy-extra-checks-opt, r=Kobzol
tidy: increase performance of auto extra checks feature

Removes the repeated calls to git diff.

Halves the overhead of the tidy extra checks feature from 0.1 seconds to 0.05 on my machine, but probably will be more significant on systems on slow disks or less memory for i/o cache.

r? ``@Kobzol``
2025-07-29 20:19:51 +10:00
Stuart Cook
4bfbd80bab
Rollup merge of #144500 - joboet:thread-name-stack-overflow, r=ChrisDenton
thread name in stack overflow message

Fixes rust-lang/rust#144481, which is caused by the thread name not being initialised yet when setting up the stack overflow information. Unfortunately, the stack overflow UI test did not test for the correct thread name being present, and testing this separately didn't occur to me when writing https://github.com/rust-lang/rust/pull/140628.

This PR contains the smallest possible fix I could think of: passing the thread name explicitly to the platform thread creation function. In the future I'd very much like to explore some possibilities around merging the thread packet and thread handle into one structure and using that in the platform code instead – but that's best left for another PR.

This PR also amends the stack overflow test to check for thread names, so we don't run into this again.

``@rustbot`` label +beta-nominated
2025-07-29 20:19:51 +10:00
Stuart Cook
047304b155
Rollup merge of #144482 - Shourya742:2025-07-24-have-explicit-download-methods, r=Kobzol
Add explicit download methods to download module in bootstrap

This PR attempts to decouple the default initialization of the config object from parse_inner. It moves specific download methods, previously used during the initial config setup, into standalone functions outside the config implementation.

r? ``@Kobzol``
2025-07-29 20:19:50 +10:00
Stuart Cook
dbcf168568
Rollup merge of #144451 - ShoyuVanilla:loop-match-upvar, r=oli-obk
fix: Reject upvar scrutinees for `loop_match`

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

I think we should reject upvars as they are not locals but somewhat like field access
2025-07-29 20:19:49 +10:00
Stuart Cook
b3962e8811
Rollup merge of #144407 - godzie44:godzie44/fix_dwarf_inconsistency, r=wesleywiser
fix(debuginfo): disable overflow check for recursive non-enum types

Commit b10edb4 introduce an overflow check when generating debuginfo for expanding recursive types. While this check works correctly for enums, it can incorrectly prune valid debug information for structures.

For example see rust-lang/rust#143241 (https://github.com/rust-lang/rust/issues/143241#issuecomment-3073721477). Furthermore, for structures such check does not make sense, since structures with recursively expanding types simply will not compile (there is a `hir_analysis_recursive_generic_parameter` for that).

closes rust-lang/rust#143241
2025-07-29 20:19:49 +10:00
Stuart Cook
9cba49896c
Rollup merge of #144167 - zachs18:rangebounds-not-unsized-reason, r=tgross35
Document why `Range*<&T> as RangeBounds<T>` impls are not `T: ?Sized`, and give an alternative.

`Range*<&T> as RangeBounds<T>` impls have been tried to be relaxed to `T: ?Sized` at least twice:

* https://github.com/rust-lang/rust/pull/61584
* https://github.com/rust-lang/rust/pull/64327

I also was just about to make another PR to do it again until I `./x.py test library/alloc` and rediscovered the type inference regression, then searched around and found the previous PRs. Hence this PR instead so hopefully that doesn't keep happening 😛.

These impls cannot be relaxed for two reasons:

1. Type inference regressions: See ``@SimonSapin's`` explanation from a previous PR: https://github.com/rust-lang/rust/pull/61584#issuecomment-499601046
2. It's a breaking change: `impl RangeBounds<MyUnsizedType> for std::ops::Range<&MyUnsizedType>` is allowed after the coherence rebalance ([playground link](https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=f704a6fe53bfc33e55b2fc246d895ec2)), and relaxing these impls would conflict with that downstream impl.

This PR adds doc-comments explaining that not having `T: ?Sized` is intentional[^1], and gives an explicit alternative: `(Bound<&T>, Bound<&T>)`.

Technically, the impls for the unstable new `std::range` types could be relaxed, as they are still unstable so the change would not be breaking, but having them be different in this regard seems worse (and the non-iterable `RangeTo/RangeToInclusive` range types are shared between the "new" and "old" so cannot be changed anyway), and then the type inference regression would pop up in whatever edition the new range types stabilize in.

The "see \<link\> for discussion of those issues" is intentionally left as a non-doc comment just for whoever may try to relax these impls again in the future, but if it is preferred to have the link in the docs I can add that.

Closes https://github.com/rust-lang/rust/issues/107196 (as wontfix)
CC https://github.com/rust-lang/rust/issues/64027

[^1]: "intentional" is maybe a bit of strong wording, should it instead say something like "was stabilized without it and it would be breaking to change it now"?
2025-07-29 20:19:48 +10:00
Stuart Cook
4bc1b98e15
Rollup merge of #144022 - connortsui20:sync_nonpoison, r=tgross35
Implementation: `#[feature(sync_nonpoison)]`, `#[feature(nonpoison_mutex)]`

Continuation of https://github.com/rust-lang/rust/pull/134663

Tracking Issue: https://github.com/rust-lang/rust/issues/134645

This PR implements a new `sync/nonpoison` module, as well as the `nonpoison` variant of the `Mutex` lock.

There are 2 main changes here, the first is the new `nonpoison::mutex` module, and the second is the `mutex` integration tests.

For the `nonpoison::mutex` module, I did my best to align it with the current state of the `poison::mutex` module. This means that several unstable features (`mapped_lock_guards`, `lock_value_accessors`, and `mutex_data_ptr`) are also in the new `nonpoison::mutex` module, under their respective feature gates. Everything else in that file is under the correct feature gate (`#[unstable(feature = "nonpoison_mutex", issue = "134645")]`).

Everything in the `nonpoison::mutex` file is essentially identical in spirit, as we are simply removing the error case from the original `poison::mutex`.

The second big change is in the integration tests. I created a macro called that allows us to duplicate tests that are "generic" over the different mutex types, in that the poison mutex is always `unwrap`ped.

~~I think that there is an argument against doing this, as it can make the tests a bit harder to understand (and language server capabilities are weaker within macros), but I think the benefit of code deduplication here is worth it. Note that it is definitely possible to generalize this (with a few tweaks) to testing the other `nonpoison` locks when they eventually get implemented, but I'll leave that for a later discussion.~~
2025-07-29 20:19:48 +10:00
Nikita Popov
d50b4f10f1 Adjust enum-discriminant-eq.rs for LLVM 21
The two xors get folded into the select.
2025-07-29 12:15:38 +02:00
Nikita Popov
56d9ed7445 Fix nvptx-safe-naming.rs test on LLVM 21
This is now printed on the same line. Use NEXT/SAME depending on
the LLVM version.
2025-07-29 12:15:36 +02:00