Commit Graph

270242 Commits

Author SHA1 Message Date
Lukas Wirth
a5b5b466b0
Merge pull request #18453 from ChayimFriedman2/leading-or
Parse patterns with leading pipe properly in all places
2024-10-31 14:49:35 +00:00
lcnr
dc750665ae normalization folders, yeet ParamEnv::reveal 2024-10-31 14:55:53 +01:00
lcnr
2cde638ac0 stop using ParamEnv::reveal while handling MIR 2024-10-31 14:55:53 +01:00
Chayim Refael Friedman
f0bf75d647 Parse patterns with leading pipe properly in all places 2024-10-31 15:32:37 +02:00
bors
20c909ff9c Auto merge of #132401 - matthiaskrgr:rollup-599ieqr, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #130693 (Add `minicore` test auxiliary and support `//@ add-core-stubs` directive in ui/assembly/codegen tests)
 - #132316 (CI: use free runners for 3 fast windows jobs)
 - #132354 (Add `lp64e` RISC-V ABI)
 - #132395 (coverage: Avoid ICE when `coverage_cx` is unexpectedly unavailable)
 - #132396 (CI: use free runners for x86_64-gnu-tools and x86_64-rust-for-linux)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-31 12:57:11 +00:00
Lukas Wirth
b25a3de4d1
Merge pull request #18447 from ChayimFriedman2/cleanup-tylowerctx
Avoid interior mutability in `TyLoweringContext`
2024-10-31 12:48:17 +00:00
bjorn3
3cc0ba8337 Remove support for compressed dylib metadata from rust-analyzer 2024-10-31 12:48:09 +00:00
Kajetan Puchalski
10edeea4b4 rustc_codegen_llvm: Add a new 'pc' option to branch-protection
Add a new 'pc' option to -Z branch-protection for aarch64 that
enables the use of PC as a diversifier in PAC branch protection code.

When the pauth-lr target feature is enabled in combination
with -Z branch-protection=pac-ret,pc, the new 9.5-a instructions
(pacibsppc, retaasppc, etc) will be generated.
2024-10-31 11:59:17 +00:00
bjorn3
87b9c092fb Remove support for decompressing dylib metadata
We haven't been compressing dylib metadata for a while now. Removing
decompression support will regress error messages about an incompatible
rustc version being used, but dylibs are pretty rare anyway.
2024-10-31 11:51:00 +00:00
lcnr
563c473e8d clippy: we've got a LateContext use it for TypingMode 2024-10-31 12:43:22 +01:00
lcnr
aab149b58c ConstCx stop using ParamEnv::reveal 2024-10-31 12:43:22 +01:00
Matthias Krüger
c9584b7a96
Rollup merge of #132396 - MarcoIeni:ci-use-free-runners-for-x86_64-gnu-tools-and-x86_64-rust-for-linux, r=Kobzol
CI: use free runners for x86_64-gnu-tools and x86_64-rust-for-linux

try-job: x86_64-gnu-tools
try-job: x86_64-rust-for-linux
2024-10-31 12:35:57 +01:00
Matthias Krüger
bfc956e36f
Rollup merge of #132395 - Zalathar:coverage-cx-ice, r=jieyouxu
coverage: Avoid ICE when `coverage_cx` is unexpectedly unavailable

In #132124, `coverage_cx()` was changed to panic if the context was unavailable, under the assumption that it would always be available whenever coverage instrumentation is enabled.

However, there have been reports of this change causing ICEs in `polars` CI.

I don't yet understand why this is happening, but for now it seems wisest to revert that part of the change, restoring the two early returns that had been replaced with panics.
2024-10-31 12:35:56 +01:00
Matthias Krüger
6b96a7944a
Rollup merge of #132354 - koute:master, r=workingjubilee
Add `lp64e` RISC-V ABI

This PR adds support for the `lp64e` RISC-V ABI, which is the 64-bit equivalent of the `ilp32e` ABI that is already supported.

For reference, this ABI was originally added to LLVM in [this PR](https://reviews.llvm.org/D70401).
2024-10-31 12:35:56 +01:00
Matthias Krüger
76b748ad19
Rollup merge of #132316 - MarcoIeni:ci-free-runners-windows, r=Mark-Simulacrum
CI: use free runners for 3 fast windows jobs

try-job: dist-i686-msvc
try-job: dist-i686-mingw
try-job: dist-x86_64-mingw
try-job: dist-x86_64-msvc-alt
2024-10-31 12:35:55 +01:00
Matthias Krüger
2da55600bc
Rollup merge of #130693 - jieyouxu:minicore, r=bjorn3
Add `minicore` test auxiliary and support `//@ add-core-stubs` directive in ui/assembly/codegen tests

Context: [Real cross-compiling tests instead of `#![no_core]` silliness #130375](https://github.com/rust-lang/rust/issues/130375)
MCP: https://github.com/rust-lang/compiler-team/issues/786
Tracking issue: https://github.com/rust-lang/rust/issues/131485

This prototype PR is subject to further changes based on feedback.

### New `minicore` test auxiliary and `//@ add-core-stubs` compiletest directive

This PR introduces a prototype implementation of a `minicore` auxiliary test helper that provides `core` stubs for `#![no_core]` ui/assembly/codegen tests that need to build but not run on both the host platform and the cross-compiled target platform.

Key summary:

- `tests/auxiliary/minicore.rs` contains stub definitions of `core` items intended for consumption by `check-pass`/`build-pass` tests that want the typical prelude items like `Copy` to be stubbed out under `#![no_core]` scenarios, so that the test can be built (not run) for cross-compiled target platforms. Such tests don't want nor need full `-Z build-std` (e.g. `tests/ui/abi/compatibility.rs`).
- `minicore` is intended for `core` items **only**, not `std`- or `alloc`-exclusive items. If stubs for `alloc` or `std` are wanted, they should be provided by an additional directive and test auxiliary, and not be conflated with `minicore` or `core` stubs. This is because a wider range of tests can benefit from `core`-only stubs.

### Implementation

- The `minicore` auxiliary is a single source file `tests/auxiliary/minicore.rs`.
- The path to `minicore` is made avaiable from bootstrap to compiletest via the `--minicore-path` compiletest flag.
- `minicore` is then built on-demand via the `//@ add-core-stubs` compiletest directive, for each test revision for the given target platform (this distinction is important for when host platform != target platform in cross-compilation scenario).
- `minicore` is then made available to the test as an [extern prelude].

[extern prelude]: https://doc.rust-lang.org/reference/names/preludes.html#extern-prelude

### Example usage

```rs
// tests/ui/abi/my-abi-test.rs

//@ check-pass
//@ add-core-stubs
//@ compile-flags: --target i686-unknown-linux-gnu
//@ needs-llvm-components: x86

#![feature(no_core, lang_items)]
#![no_std]
#![no_core]
#![allow(unused, internal_features)]

extern crate minicore;
use minicore::*;

#[lang = "clone"]
pub trait Clone: Sized {      // `Sized` is provided by `minicore`
    fn clone(&self) -> Self;
}
```

### Implementation steps

- [x] 1. Add an initial `minicore` test auxiliary.
- [x] 2. Build `minicore` in bootstrap.
- [x] 3. Setup a `--minicore-path` compiletest cli flag and pass `minicore` build artifact path from bootstrap to compiletest.
- [x] 4. Assert `add-core-stubs` is mutually incompatible with tests that require to be `run`, as the stubs are only good for tests that only need to be built (i.e. no `run-{pass,fail}`).
- [x] 5. Add some self-tests to sanity check the behavior.
- [x] 6. Ensure that `tests/auxiliary/minicore.rs` is input stamped, i.e. modifying `tests/auxiliary/minicore.rs` should invalidate test cache and force the test to be rerun.

### Known limitations

- The current `minicore` is very minimal, because this PR is intended to focus on supporting the test infrastructure first. Further stubs could be added in follow-up PRs and/or on a as-needed basis.

try-job: aarch64-apple
try-job: armhf-gnu
try-job: x86_64-msvc
try-job: test-various
try-job: dist-various-1
2024-10-31 12:35:55 +01:00
lcnr
84295b917d traits::project: yeet ParamEnv::reveal 2024-10-31 12:06:19 +01:00
Arthur Carcano
df445264b3 Add intra-doc link in str::xxx_char_boundary 2024-10-31 11:55:12 +01:00
MarcoIeni
3036f4f668
CI: use free runners for x86_64-gnu-tools and x86_64-rust-for-linux 2024-10-31 11:29:29 +01:00
Zalathar
8dddd1ae60 coverage: Avoid ICE when coverage_cx is unexpectedly unavailable 2024-10-31 21:25:43 +11:00
许杰友 Jieyou Xu (Joe)
adb6d4752f tests: use minicore in tests/ui/abi/compatibility.rs as an example 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
0bbe07e8ff tests/ui: add minicore compiletest self-test 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
a8b34f58cf tests/codegen: add minicore compiletest self-test 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
b115a22828 tests/assembly: add minicore compiletest self-test
Check that `minicore` cannot be used with `run-{pass,fail}` tests.
2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
59cb59d74d compiletest: stamp minicore.rs to rerun tests on changes 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
a737f75a04 compiletest: conditionally build and provide minicore as extern prelude when requested via //@ add-core-stubs directive
`//@ add-core-stubs` will imply `-Cpanic=abort`.
2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
95d01fcee9 compiletest: register --minicore-path flag and //@ add-core-stubs directive 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
74c0c48858 compiletest: localize compile_test_and_save_assembly to assembly test module 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
f9ca4201f8 bootstrap: pass minicore path when running compiletest step 2024-10-31 18:20:11 +08:00
许杰友 Jieyou Xu (Joe)
82c2e42894 minicore: add minimal minicore test auxiliary
The initial `minicore` is intentionally super minimal and contains an
incomplete subset of `core` items, and explicitly not items from `alloc`
or `std`-only items.
2024-10-31 18:20:11 +08:00
bors
9ccfedf186 Auto merge of #132301 - compiler-errors:adjust, r=lcnr
Remove region from adjustments

It's not necessary to store this region, because it's only used in THIR and MemCat/ExprUse, both of which already basically only deal with erased regions anyways.
2024-10-31 10:17:49 +00:00
Mara Bos
a433ea2518 Update tests. 2024-10-31 10:55:45 +01:00
Mara Bos
cb26fa07bb Improve the missing_abi lint. 2024-10-31 10:55:45 +01:00
bjorn3
297e933bf8 Fix rustc test suite 2024-10-31 09:51:09 +00:00
MarcoIeni
183599fa99
CI: use free runners for 3 fast windows jobs 2024-10-31 10:38:42 +01:00
bjorn3
05126cdc10 Rustup to rustc 1.84.0-nightly (759e07f06 2024-10-30) 2024-10-31 09:28:49 +00:00
David Lattimore
00da974c5c Use protected symbols when building rustc_driver 2024-10-31 20:26:21 +11:00
bjorn3
28701aa46d Sync from rust 759e07f063 2024-10-31 09:20:43 +00:00
Lukas Wirth
2a9b851c3e
Merge pull request #18448 from Veykril/push-zwuuoytnmnqz
Move `child_by_source` from `hir-def` to `hir`
2024-10-31 08:42:59 +00:00
Lukas Wirth
bc862b897d Move child_by_source from hir-def to hir 2024-10-31 09:28:08 +01:00
Lukas Wirth
7ca05b5432
Merge pull request #18437 from sam-mccall/publish_fixture
Publish test-fixture => ra_ap_test_fixture
2024-10-31 08:03:44 +00:00
Jan Bujak
c1db011ccb Add lp64e ABI to the spec tests match 2024-10-31 16:38:47 +09:00
Jan Bujak
44b720a2d4 Add a comment about lp64e still being unstable 2024-10-31 16:38:45 +09:00
bors
4d296eabe4 Auto merge of #132384 - matthiaskrgr:rollup-0ze5wc4, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #132347 (Remove `ValueAnalysis` and `ValueAnalysisWrapper`.)
 - #132365 (pass `RUSTC_HOST_FLAGS` at once without the for loop)
 - #132366 (Do not enforce `~const` constness effects in typeck if `rustc_do_not_const_check`)
 - #132376 (Annotate `input` reference tests)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-31 06:22:57 +00:00
许杰友 Jieyou Xu (Joe)
cfb4c05d77 Add a mir-opt GVN test for #128299
Co-authored-by: DianQK <dianqk@dianqk.net>
2024-10-31 13:48:35 +08:00
许杰友 Jieyou Xu (Joe)
10b8ba4ecb Mark simplify_aggregate_to_copy mir-opt as unsound
Co-authored-by: DianQK <dianqk@dianqk.net>
2024-10-31 13:48:06 +08:00
Jubilee Young
8a0e64078e compiler: Switch to rustc_abi in hir_pretty, lint_defs, and mir_build
Completely abandon usage of rustc_target in these crates, as
they need no special knowledge of rustc's target tuples.
2024-10-30 22:38:49 -07:00
Jubilee Young
eca17022ef compiler: Lift rustc_target::spec::abi::Abi to rustc_abi::ExternAbi 2024-10-30 22:38:49 -07:00
许杰友 Jieyou Xu (Joe)
4d8bda335e Add a regression test for #132353
To catch at least one pattern that was miscompiled. The test is a
minimization of the MCVE reported in
<https://github.com/rust-lang/rust/issues/132353>.
2024-10-31 13:12:22 +08:00
Matthias Krüger
49a76c14c4
Rollup merge of #132376 - ehuss:reference-input, r=traviscross
Annotate `input` reference tests

This adds test annotations for rules in the [input chapter](https://doc.rust-lang.org/nightly/reference/input-format.html) of the reference.
2024-10-31 06:11:58 +01:00