250742 Commits

Author SHA1 Message Date
Matthew Maurer
40f41e7e89 CFI: Support arbitrary receivers
Previously, we only rewrote `&self` and `&mut self` receivers. By
instantiating the method from the trait definition, we can make this
work work with arbitrary legal receivers instead.
2024-03-24 22:46:48 +00:00
Reed
58e2ad3d58 Amended wording 2024-03-24 12:20:39 -07:00
bors
0824b300eb Auto merge of #122658 - cuviper:gccjit-archive, r=Mark-Simulacrum
ci: Build gccjit from a git archive

A full `git clone` of GCC includes quite a lot of history, and it's
completely unnecessary for building it in CI. We can use a GitHub
archive URL to get a simple tarball that is much faster to download.

Also, the `gcc-build` directory can be removed after install to reduce
the image size even further.
2024-03-24 18:15:27 +00:00
Matthew Maurer
ea4518522f CFI: Handle dyn with no principal
In user-facing Rust, `dyn` always has at least one predicate following
it. Unfortunately, because we filter out marker traits from receivers at
callsites and `dyn Sync` is, for example, legal, this results in us
having `dyn` types with no predicates on occasion in our alias set
encoding. This patch handles cases where there are no predicates in a
`dyn` type which are relevant to its alias set.

Fixes #122998
2024-03-24 16:58:33 +00:00
bors
d36bdd19f2 Auto merge of #123004 - matthiaskrgr:rollup-s3v4p50, r=matthiaskrgr
Rollup of 10 pull requests

Successful merges:

 - #122737 (conditionally ignore fatal diagnostic in the SilentEmitter)
 - #122757 (Fixed the `private-dependency` bug)
 - #122886 (add test for #90192)
 - #122937 (Unbox and unwrap the contents of `StatementKind::Coverage`)
 - #122949 (Add a regression test for #117310)
 - #122962 (Track run-make-support lib in common inputs stamp)
 - #122977 (Rename `Arguments::as_const_str` to `as_statically_known_str`)
 - #122983 (Fix build failure on ARM/AArch64/PowerPC/RISC-V FreeBSD/NetBSD)
 - #122984 (panic-in-panic-hook: formatting a message that's just a string is risk-free)
 - #122992 (std:🧵 refine available_parallelism for solaris/illumos.)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-24 16:09:51 +00:00
bors
dcddf24626 Auto merge of #3402 - RalfJung:miri-script, r=RalfJung
miri script: build with stable toolchain

`./miri toolchain` sets up a `rustup override miri`. But then if something goes wrong and the `miri` toolchain doesn't work, one can't even run `./miri toolchain` again as building miri-script needs a toolchain...

So let's always use stable to build miri-script, making it override-independent. I assume everyone will have that installed.
2024-03-24 16:08:43 +00:00
Matthias Krüger
cdf86bf443
Rollup merge of #122992 - devnexen:available_parallelism_sol_upd, r=Amanieu
std:🧵 refine available_parallelism for solaris/illumos.

Rather than the system-wide available cpus fallback solution, we fetch the cpus bound to the current process.
2024-03-24 17:08:19 +01:00
Matthias Krüger
f67fb08605
Rollup merge of #122984 - RalfJung:panic-in-hook, r=Amanieu
panic-in-panic-hook: formatting a message that's just a string is risk-free

This slightly improves the output in the 'panic while processing panic' case if the panic message does not involve any formatting. Follow-up to https://github.com/rust-lang/rust/pull/122930.

r? ``@Amanieu``
2024-03-24 17:08:19 +01:00
Matthias Krüger
a5852ef941
Rollup merge of #122983 - taiki-e:bsd, r=workingjubilee
Fix build failure on ARM/AArch64/PowerPC/RISC-V FreeBSD/NetBSD

Fixes https://github.com/rust-lang/rust/pull/121881#discussion_r1536764650

Checked targets: aarch64-unknown-freebsd, powerpc64-unknown-freebsd, armv7-unknown-freebsd, riscv64gc-unknown-freebsd, aarch64-unknown-netbsd.

r? ``@Amanieu``
cc ``@devnexen``
2024-03-24 17:08:18 +01:00
Matthias Krüger
6b1f4e44d2
Rollup merge of #122977 - cuviper:as_statically_known_str, r=RalfJung
Rename `Arguments::as_const_str` to `as_statically_known_str`

While `const` has a particular meaning about language guarantees, here
we need a fuzzier notion like whether constant propagation was
effective, and `statically_known` is the best term we have for now.

r? ``@RalfJung``
2024-03-24 17:08:18 +01:00
Matthias Krüger
5281fe29cc
Rollup merge of #122962 - jieyouxu:stamp-rmake-support-lib, r=onur-ozkan
Track run-make-support lib in common inputs stamp

So that when the support library gets modified, `run-make` tests are forced to re-run instead of being still ignored as if nothing changed.

Fixes #122961.
2024-03-24 17:08:17 +01:00
Matthias Krüger
96a5348c05
Rollup merge of #122949 - ShoyuVanilla:issue-117310, r=lcnr
Add a regression test for #117310

Closes #117310

It seems to have been fixed in `rustc 1.79.0-nightly (1388d7a06 2024-03-20)` or before, so just adding a regression test for it.
2024-03-24 17:08:17 +01:00
Matthias Krüger
19d3827efe
Rollup merge of #122937 - Zalathar:unbox, r=oli-obk
Unbox and unwrap the contents of `StatementKind::Coverage`

The payload of coverage statements was historically a structure with several fields, so it was boxed to avoid bloating `StatementKind`.

Now that the payload is a single relatively-small enum, we can replace `Box<Coverage>` with just `CoverageKind`.

This patch also adds a size assertion for `StatementKind`, to avoid accidentally bloating it in the future.

``@rustbot`` label +A-code-coverage
2024-03-24 17:08:16 +01:00
Matthias Krüger
702261dce6
Rollup merge of #122886 - matthiaskrgr:issue90192, r=fee1-dead
add test for #90192

Fixes #90192
2024-03-24 17:08:16 +01:00
Matthias Krüger
04eedb24c9
Rollup merge of #122757 - h1467792822:priv-dep, r=davidtwco
Fixed the `private-dependency` bug

Fixed the private-dependency bug: If the directly dependent crate is loaded last and is not configured with `--extern`, it may be incorrectly set to `private-dependency`

Fixes #122756
2024-03-24 17:08:15 +01:00
Matthias Krüger
3fe9f66133
Rollup merge of #122737 - ytmimi:conditionally_ignore_fatal_diagnostic, r=davidtwco
conditionally ignore fatal diagnostic in the SilentEmitter

This change is primarily meant to allow rustfmt to ignore all diagnostics when using the `SilentEmitter`. Back in #121301 the `SilentEmitter` was shared between rustc and rustfmt. This changed rustfmt's behavior from ignoring all diagnostic to emitting fatal diagnostics, which lead to https://github.com/rust-lang/rustfmt/issues/6109.

These changes allow rustfmt to maintain its previous behaviour when using the `SilentEmitter`, while allowing rustc code to still emit fatal diagnostics.
2024-03-24 17:08:15 +01:00
David Carlier
1871ea5710 fix build. 2024-03-24 16:02:02 +00:00
bors
f97f448d4e Auto merge of #3406 - RalfJung:many-seeds, r=RalfJung
many-seeds: propagate failure properly

This may help explain https://github.com/rust-lang/miri/issues/3405.
2024-03-24 15:13:47 +00:00
Ralf Jung
a12decc07a desperate hack: hard-code bash path on Windows 2024-03-24 16:07:20 +01:00
Alex Macleod
2cb53473d9 Rename {enter,exit}_lint_attrs to check_attributes{,_post} 2024-03-24 14:57:57 +00:00
Ralf Jung
805f6eed46 try to fix many-seeds tests on Windows 2024-03-24 15:43:06 +01:00
bors
624af51813 Auto merge of #3398 - tiif:add_libc_fs_test, r=RalfJung
Add libc direct test for shims and update CONTRIBUTING.md

Add more ``libc`` direct test for shims as mentioned in #3179.

Changes:
- Added ``libc`` direct tests for ``rename`` and ``ftruncate64``
- Added the command for running ``pass-dep`` test in ``CONTRIBUTING.md``
2024-03-24 14:16:48 +00:00
Alex Macleod
47192937d4 Fix unpretty UI test when /tmp does not exist 2024-03-24 14:00:45 +00:00
tiif
04a69e4cf4 Add libc test for rename and ftruncate 2024-03-24 22:00:16 +08:00
Ralf Jung
acf3f52b7b miri-script/toolchain: make new_commit logic easier to follow 2024-03-24 14:49:46 +01:00
Ralf Jung
fdb561309d many-seeds: propagate failure properly 2024-03-24 14:45:32 +01:00
bors
6e6c721742 Auto merge of #122895 - matthiaskrgr:ice-tests-5xxxx-to-9xxxx, r=fmease
add some ice tests 5xxxx to 9xxxx

  Fixes rust-lang/rust#98842
  Fixes rust-lang/rust#90691
  Fixes rust-lang/rust#88421
  Fixes rust-lang/rust#88212
  Fixes rust-lang/rust#83056
  Fixes rust-lang/rust#80125
  Fixes rust-lang/rust#64784
  Fixes rust-lang/rust#52334
2024-03-24 13:38:12 +00:00
Ralf Jung
04b523ff34 CI tweaks and show which stable Rust we are using 2024-03-24 14:31:44 +01:00
github-actions
1848b46c0b cargo update
Updating aho-corasick v1.1.2 -> v1.1.3
    Updating backtrace v0.3.69 -> v0.3.71
    Updating bitflags v2.4.2 -> v2.5.0
    Updating bytes v1.5.0 -> v1.6.0
    Updating cargo-platform v0.1.7 -> v0.1.8
    Updating fastrand v2.0.1 -> v2.0.2
    Updating indexmap v2.2.5 -> v2.2.6
    Updating libz-sys v1.1.15 -> v1.1.16
    Updating rayon v1.9.0 -> v1.10.0
    Updating reqwest v0.11.26 -> v0.11.27 (latest: v0.12.1)
    Updating rustix v0.38.31 -> v0.38.32
    Updating smallvec v1.13.1 -> v1.13.2
    Updating syn v2.0.53 -> v2.0.55
    Updating uuid v1.7.0 -> v1.8.0
note: pass `--verbose` to see 87 unchanged dependencies behind latest
2024-03-24 12:09:28 +00:00
Ralf Jung
42526e142a simplify_branches: add comment 2024-03-24 12:53:03 +01:00
Zalathar
b5ee20f714 Clean up unnecessary headers/flags in coverage mir-opt tests
These headers and flags were historically needed, but are now unnecessary due
to various changes in how coverage information is stored in MIR.
2024-03-24 22:17:47 +11:00
bors
6a92312a1e Auto merge of #122891 - compiler-errors:encode-implied-predicates-always, r=oli-obk
Encode implied predicates for traits

In #112629, we decided to make associated type bounds in the "supertrait" AST position *implied* even though they're not supertraits themselves.

This means that the `super_predicates` and `implied_predicates` queries now differ for regular traits. The assumption that they didn't differ was hard-coded in #107614, so in cross-crate positions this means that we forget the implied predicates from associated type bounds.

This isn't unsound, just kind of annoying. This should be backported since associated type bounds are slated to stabilize for 1.78 -- either that, or associated type bounds can be reverted on beta and re-shipped in 1.79 with this patch.

Fixes #122859
2024-03-24 11:17:21 +00:00
David Carlier
4b84df9ea3 std:🧵 refine available_parallelism for solaris/illumos.
Rather than the system-wide available cpus fallback solution, we fetch
the cpus bound to the current process.
2024-03-24 10:57:17 +00:00
Giacomo Stevanato
fb65ca14b2 Clarify transmute example 2024-03-24 11:27:34 +01:00
Matthias Krüger
e4d816e66c add tests for ICE: 'broken MIR: bad assignment: NoSolution' on trait with default method and no impls
Fixes #109869
2024-03-24 10:57:20 +01:00
Matthias Krüger
e800b99347 add tests for ICE in mir building with captured value of unresolved type, None in compiler/rustc_mir_build/src/build/expr/as_place.rs #110453
Fixes #110453
2024-03-24 10:51:23 +01:00
bors
c7b86fc708 Auto merge of #3403 - RalfJung:rustup, r=RalfJung
Rustup
2024-03-24 09:43:36 +00:00
Matthias Krüger
56ea366763 add test for Failed to normalize closure with TAIT #109020
Fixes #109020
2024-03-24 10:41:34 +01:00
Ralf Jung
1dd13ca1b1 miri script: build with stable toolchain 2024-03-24 10:39:48 +01:00
Ralf Jung
070e8ceab3 Merge from rustc 2024-03-24 10:38:05 +01:00
Ralf Jung
2e464c2560 Preparing for merge from rustc 2024-03-24 10:38:04 +01:00
Matthias Krüger
5e0d8c3b62 add test for ICE: no errors encountered even though delay_span_bug issued, expected ReFree to map to ReEarlyBound #108580
Fixes https://github.com/rust-lang/rust/issues/108580
2024-03-24 10:35:24 +01:00
Ralf Jung
0727b6ad0d panic-in-panic-hook: formatting a message that's just a string is risk-free 2024-03-24 10:29:44 +01:00
Matthias Krüger
6203ebe274 add test for ICE with associated_const_equality #108220
Fixes #108220
2024-03-24 10:28:25 +01:00
Matthias Krüger
b151e06659 add test for ICE: min_specialization: Ok(['?0, Const { ty: usize, kind: Leaf(0x0000000000000000) }]) is not fully resolved #113045
Fixes https://github.com/rust-lang/rust/issues/113045
2024-03-24 10:19:25 +01:00
Matthias Krüger
cdea6d8382 add test for ICE: no entry found for key for const function in generic_const_exprs #113133
Fixes #113133
2024-03-24 10:16:29 +01:00
Matthias Krüger
8ed5e6744f add test for #114464
Fixes #114464
2024-03-24 10:09:56 +01:00
Matthias Krüger
db68dc27f4 add test for #116599
Fixes #116599
2024-03-24 10:05:27 +01:00
bors
4a52e9cc2a Auto merge of #122980 - workingjubilee:rollup-r5i1rke, r=workingjubilee
Rollup of 7 pull requests

Successful merges:

 - #120419 (Expand sys/os for UEFI)
 - #121940 (Mention Register Size in `#[warn(asm_sub_register)]`)
 - #122762 (fix typo of endianness)
 - #122797 (Fix compile of wasm64-unknown-unknown target)
 - #122875 (CFI: Support self_cell-like recursion)
 - #122879 (CFI: Strip auto traits off Virtual calls)
 - #122969 (Simplify an iterator search in borrowck diag)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-24 09:04:01 +00:00
Matthias Krüger
127c36c794 add test for https://github.com/rust-lang/rust/issues/119731
Fixes #119731
2024-03-24 10:01:50 +01:00