about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-03-11Auto merge of #122050 - erikdesjardins:sret, r=nikicbors-132/+329
Stop using LLVM struct types for byval/sret For `byval` and `sret`, the type has no semantic meaning, only the size matters\*†. Using `[N x i8]` is a more direct way to specify that we want `N` bytes, and avoids relying on LLVM's struct layout. \*: The alignment would matter, if we didn't explicitly specify it. From what I can tell, we always specified the alignment for `sret`; for `byval`, we didn't until #112157. †: For `byval`, the hidden copy may be impacted by padding in the LLVM struct type, i.e. padding bytes may not be copied. (I'm not sure if this is done today, but I think it would be legal.) But we manually pad our LLVM struct types specifically to avoid there ever being LLVM-visible padding, so that shouldn't be an issue. Split out from #121577. r? `@nikic`
2024-03-11Auto merge of #121752 - mu001999:dead_code/improve, r=pnkfelixbors-82/+121
Detect unused struct impls pub trait Fixes #47851
2024-03-11Auto merge of #122132 - nnethercote:diag-renaming3, r=nnethercotebors-586/+567
Diagnostic renaming 3 A sequel to https://github.com/rust-lang/rust/pull/121780. r? `@davidtwco`
2024-03-11Rename diagnostic derive things.Nicholas Nethercote-11/+10
For increased consistency. - session_diagnostic_derive -> diagnostic_derive - session_subdiagnostic_derive -> subdiagnostic_derive - SubdiagnosticDeriveBuilder -> SubdiagnosticDerive
2024-03-11Rename `DecorateLint` as `LintDiagnostic`.Nicholas Nethercote-54/+54
To match `derive(LintDiagnostic)`.
2024-03-11Rename `AddToDiagnostic` as `Subdiagnostic`.Nicholas Nethercote-153/+153
To match `derive(Subdiagnostic)`. Also rename `add_to_diagnostic{,_with}` as `add_to_diag{,_with}`.
2024-03-10Auto merge of #122312 - matthiaskrgr:rollup-0p8y7gg, r=matthiaskrgrbors-169/+204
Rollup of 9 pull requests Successful merges: - #122275 (disable OOM test in Miri) - #122276 (io::Read trait: make it more clear when we are adressing implementations vs callers) - #122277 (BorrowedCursor docs clarification) - #122286 (use Instance::expect_resolve() instead of unwraping Instance::resolve()) - #122290 (MIR printing: print the path of uneval'd const) - #122293 (diagnostics: Do not suggest using `#[unix_sigpipe]` without a value) - #122297 (bootstrap: document what the triples in 'Build' mean) - #122302 (docs: Correct ptr/ref verbiage in SliceIndex docs.) - #122304 (fix metadata for dyn-star in new solver) r? `@ghost` `@rustbot` modify labels: rollup
2024-03-11Rename `IntoDiagnostic` as `Diagnostic`.Nicholas Nethercote-164/+146
To match `derive(Diagnostic)`. Also rename `into_diagnostic` as `into_diag`.
2024-03-11Rename `IntoDiagnosticArg` as `IntoDiagArg`.Nicholas Nethercote-219/+218
Also rename `into_diagnostic_arg` as `into_diag_arg`, and `NotIntoDiagnosticArg` as `NotInotDiagArg`.
2024-03-11Remove unused impls from some subdiagnostics.Nicholas Nethercote-3/+3
2024-03-11Remove unused impls for some diagnostics.Nicholas Nethercote-26/+26
2024-03-11Remove `Default` derive from `MacroExpectedFound`.Nicholas Nethercote-2/+3
It's the only diagnostic in the entire project that impls `Default`, and the code is clearer without it.
2024-03-10Rollup merge of #122304 - lukas-code:dyn-star-meta, r=compiler-errorsMatthias Krüger-2/+41
fix metadata for dyn-star in new solver The pointee metadata of `dyn* Trait` types is `()` and not a vtable.
2024-03-10Rollup merge of #122302 - ratmice:issue122234, r=cuviperMatthias Krüger-4/+4
docs: Correct ptr/ref verbiage in SliceIndex docs. Fixes #122234
2024-03-10Rollup merge of #122297 - RalfJung:bootstrap-build, r=onur-ozkanMatthias Krüger-1/+3
bootstrap: document what the triples in 'Build' mean Thanks to ``@onur-ozkan`` for pointing this out to me.
2024-03-10Rollup merge of #122293 - Enselic:no-bare-unix_sigpipe, r=fmeaseMatthias Krüger-16/+9
diagnostics: Do not suggest using `#[unix_sigpipe]` without a value Remove `Word` from the `unix_sigpipe` attribute template so that plain `#[unix_sigpipe]` is not included in suggestions of valid forms of the attribute. Also re-arrange diagnostics code slightly to avoid duplicate diagnostics. Tracking issue is https://github.com/rust-lang/rust/issues/97889.
2024-03-10Rollup merge of #122290 - RalfJung:mir-printing, r=compiler-errorsMatthias Krüger-101/+114
MIR printing: print the path of uneval'd const Currently it just prints `const _` which makes it impossible to say which constant is being referred to. Also refer to promoteds in a consistent way; previously MIR printing would do ``` promoted[0] in C1: &Option<Cell<i32>> = { // ... } ``` Now that should be ``` const C1::promoted[0]: &Option<Cell<i32>> = { // ... } ``` We don't seem to have a test for that so I tried it by hand, it seems to work: ``` const main::promoted[12]: &[&str; 3] = { let mut _0: &[&str; 3]; let mut _1: [&str; 3]; let mut _2: &str; let mut _3: &str; let mut _4: &str; let mut _5: &str; bb0: { _3 = const "b"; _2 = &(*_3); _5 = const "c"; _4 = &(*_5); _1 = [const "a", move _2, move _4]; _0 = &_1; return; } } ```
2024-03-10Rollup merge of #122286 - RalfJung:resolve, r=compiler-errorsMatthias Krüger-33/+20
use Instance::expect_resolve() instead of unwraping Instance::resolve()
2024-03-10Rollup merge of #122277 - RalfJung:BorrowedCursor, r=cuviperMatthias Krüger-2/+4
BorrowedCursor docs clarification If one reads the `BorrowedCursor` docs without having seen `BorrowedBuf` before, it is quite easy to assume that "unfilled" and "uninit" are synonyms.
2024-03-10Rollup merge of #122276 - RalfJung:io-read, r=NilstriebMatthias Krüger-10/+7
io::Read trait: make it more clear when we are adressing implementations vs callers Inspired by [this](https://github.com/rust-lang/rust/issues/72186#issuecomment-1987076295) comment. For some reason we only have that `buf` warning in `read` and `read_exact`, even though it affects a bunch of other functions of this trait as well. It doesn't seem worth copy-pasting the same text everywhere though so I did not change this.
2024-03-10Rollup merge of #122275 - RalfJung:std-oom, r=workingjubileeMatthias Krüger-0/+2
disable OOM test in Miri Needed for https://github.com/rust-lang/miri-test-libstd
2024-03-10Auto merge of #122306 - workingjubilee:backtrace-0.3.70, r=workingjubileebors-0/+0
Update backtrace submodule to 0.3.70 r? `@ghost`
2024-03-10add -O to some tests which depend on attributes being addedErik Desjardins-5/+6
2024-03-10Update backtrace submodule to 0.3.70Jubilee Young-0/+0
2024-03-10fix metadata for dyn-star in new solverLukas Markeffsky-2/+41
2024-03-10docs: Correct ptr/ref verbiage in SliceIndex docs.matt rice-4/+4
Fixes #122234
2024-03-10Auto merge of #121561 - jieyouxu:compiletest-directive-typo-check, r=onur-ozkanbors-43/+180
Detect typos for compiletest test directives Checks directives against a known list of compiletest directives collected during migration from legacy-style compiletest directives. A suggestion for the best matching known directive will be made if an invalid directive is found. This PR does not attempt to implement checks for Makefile directives because they still have the problem of regular comments and directives sharing the same comment prefix `#`. Closes #83551.
2024-03-10bootstrap: document what the triples in 'Build' meanRalf Jung-1/+3
2024-03-10Remove unused structs in clippyr0cky-64/+2
2024-03-10Detect unused struct impls pub traitr0cky-18/+119
2024-03-10Auto merge of #122272 - lnicola:sync-from-ra, r=lnicolabors-2348/+4710
Subtree update of `rust-analyzer` r? ghost
2024-03-10diagnostics: Do not suggest using `#[unix_sigpipe]` without a valueMartin Nordholts-16/+9
Remove `Word` from the `unix_sigpipe` attribute template so that plain `#[unix_sigpipe]` is not included in suggestions of valid forms of the attribute. Also re-arrange diagnostics code slightly to avoid duplicate diagnostics.
2024-03-10MIR printing: print the path of uneval'd const; refer to promoteds in a ↵Ralf Jung-101/+114
consistent way
2024-03-10Fix invalid compiletest directives in tests许杰友 Jieyou Xu (Joe)-12/+8
- Fix invalid directive in `normalize-hidden-types` - Update legacy directive in `two-phase-reservation-sharing-interference`
2024-03-10Error on invalid compiletest directives in Rust test files许杰友 Jieyou Xu (Joe)-31/+172
2024-03-10Auto merge of #122283 - matthiaskrgr:rollup-w3sau3u, r=matthiaskrgrbors-301/+504
Rollup of 14 pull requests Successful merges: - #112136 (Add std::ffi::c_str module) - #113525 (Dynamically size sigaltstk in std) - #121567 (Avoid some interning in bootstrap) - #121642 (Update a test to support Symbol Mangling V0) - #121685 (Fixing shellcheck comments on lvi test script) - #121860 (Add a tidy check that checks whether the fluent slugs only appear once) - #121942 (std::rand: enable getrandom for dragonflybsd too.) - #122125 (Revert back to Git-for-Windows for MinGW CI builds) - #122221 (match lowering: define a convenient struct) - #122244 (fix: LocalWaker memory leak and some stability attributes) - #122251 (Add test to check unused_lifetimes don't duplicate "parameter is never used" error) - #122264 (add myself to rotation) - #122269 (doc/rustc: Move loongarch64-unknown-linux-musl to Tier 3) - #122271 (Fix legacy numeric constant diag items) r? `@ghost` `@rustbot` modify labels: rollup
2024-03-10use Instance::expect_resolve() instead of unwraping Instance::resolve()Ralf Jung-33/+20
2024-03-10Rollup merge of #122271 - pitaj:diag_items-legacy_numeric_constants, r=NilstriebMatthias Krüger-0/+12
Fix legacy numeric constant diag items - missed syms for usize/isize - missed diag items on unsigned integers For rust-lang/rust-clippy#12312 r? ```@Nilstrieb``` Follow-up to #121272, #121361, #121667 This should be the last one 🤞 Sorry!
2024-03-10Rollup merge of #122269 - heiher:fix-doc, r=workingjubileeMatthias Krüger-1/+1
doc/rustc: Move loongarch64-unknown-linux-musl to Tier 3 Fixes #122266
2024-03-10Rollup merge of #122264 - fee1-dead-contrib:add, r=fee1-deadMatthias Krüger-0/+1
add myself to rotation Won't have too much capacity, but I am able to contribute something. Will be rotating reviews if I run out of capacity :) r? `````@ghost````` `````@bors````` r+ rollup
2024-03-10Rollup merge of #122251 - jieyouxu:unused-lifetimes-dedup-test, r=NadrierilMatthias Krüger-0/+20
Add test to check unused_lifetimes don't duplicate "parameter is never used" error Closes #72587.
2024-03-10Rollup merge of #122244 - tvallotton:local_waker_leak_fix, r=NilstriebMatthias Krüger-5/+16
fix: LocalWaker memory leak and some stability attributes fixes #122180.
2024-03-10Rollup merge of #122221 - Nadrieril:patextradata, r=oli-obkMatthias Krüger-72/+67
match lowering: define a convenient struct Small refactor PR: `bindings` and `ascriptions` always come together so I made a struct for them. I'll have one or two fields to add to it in a later PR as well.
2024-03-10Rollup merge of #122125 - majaha:mingw_ci_new, r=Mark-SimulacrumMatthias Krüger-13/+21
Revert back to Git-for-Windows for MinGW CI builds Following discussion in https://github.com/rust-lang/rust/pull/121182 it was decided to revert using MSYS2 Git for mingw builds.
2024-03-10Rollup merge of #121942 - devnexen:getrandom_for_dfbsd, r=joboetMatthias Krüger-1/+9
std::rand: enable getrandom for dragonflybsd too.
2024-03-10Rollup merge of #121860 - mu001999:master, r=NilstriebMatthias Krüger-28/+96
Add a tidy check that checks whether the fluent slugs only appear once As ``````@Nilstrieb`````` said in https://github.com/rust-lang/rust/pull/121828#issuecomment-1972622855: > Might make sense to have a tidy check that checks whether the fluent slugs only appear once in the source code and lint for that there's a tidy check already for sorting We can get the tidy check error: ``` tidy check tidy error: /path/to/rust/compiler/rustc_const_eval/messages.ftl: message `const_eval_invalid_align` is not used tidy error: /path/to/rust/compiler/rustc_lint/messages.ftl: message `lint_trivial_untranslatable_diag` is not used tidy error: /path/to/rust/compiler/rustc_parse/messages.ftl: message `parse_invalid_literal_suffix` is not used tidy error: /path/to/rust/compiler/rustc_infer/messages.ftl: message `infer_need_type_info_in_coroutine` is not used tidy error: /path/to/rust/compiler/rustc_passes/messages.ftl: message `passes_expr_not_allowed_in_context` is not used tidy error: /path/to/rust/compiler/rustc_passes/messages.ftl: message `passes_layout` is not used tidy error: /path/to/rust/compiler/rustc_parse/messages.ftl: message `parse_not_supported` is not used ``` r? ``````@Nilstrieb``````
2024-03-10Rollup merge of #121685 - fortanix:raoul/shellcheck_on_lvi_test_script, ↵Matthias Krüger-12/+13
r=Mark-Simulacrum Fixing shellcheck comments on lvi test script Running `shellcheck` on `tests/run-make/x86_64-fortanix-unknown-sgx-lvi/script.sh` gives plenty of warnings. This PR fixes those issues. For completeness: #121683 fixes another warning as well
2024-03-10Rollup merge of #121642 - TimNN:test-v0, r=Mark-SimulacrumMatthias Krüger-2/+2
Update a test to support Symbol Mangling V0 Note that since this is a symbol from `std`, overriding the symbol mangling version via the `compile-flags` directive does not work.
2024-03-10Rollup merge of #121567 - Nilstrieb:less-interning, r=albertlarsan68Matthias Krüger-140/+128
Avoid some interning in bootstrap This interning is pointless and only makes the code more complex. The only remaining use of interning is `TargetSelection`, for which I left a comment.
2024-03-10Rollup merge of #113525 - workingjubilee:handle-dynamic-minsigstksz, r=m-ou-seMatthias Krüger-11/+39
Dynamically size sigaltstk in std On modern Linux with Intel AMX and 1KiB matrices, Arm SVE with potentially 2KiB vectors, and RISCV Vectors with up to 16KiB vectors, we must handle dynamic signal stack sizes. We can do so unconditionally by using getauxval, but assuming it may return 0 as an answer, thus falling back to the old constant if needed. Fixes https://github.com/rust-lang/rust/issues/107795