about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-09-11Limit `libc::link` usage to `nto70` target only, not NTO OSYuri Astrakhan-1/+1
It seems QNX 7.0 does not support `linkat` at all (most tests were failing). Limiting to QNX 7.0 only, while using `linkat` for the future versions seems like the right path forward (tested on 7.0). Fixes 129895
2024-09-11Auto merge of #130195 - folkertdev:naked-asm-outside-naked-fn, r=Amanieubors-16/+132
disallow `naked_asm!` outside of `#[naked]` functions tracking issue: https://github.com/rust-lang/rust/issues/90957 parent PR: https://github.com/rust-lang/rust/pull/128651 I split this out from the parent PR because it's self-contained and because the analysis has to search through all functions and there might be performance regressions. r? `@Amanieu`
2024-09-11Auto merge of #130212 - DianQK:llvm-19, r=nikicbors-0/+0
Update LLVM to 19 327ca6c Fixes #129887. r? nikic
2024-09-11Auto merge of #130194 - lcnr:generalize-cache, r=compiler-errorsbors-16/+16
generalize: track relevant info in cache key This was previously theoretically incomplete as we could incorrectly generalize as if the type was in an invariant context even though we're in a covariant one. Similar with the `in_alias` flag. r? `@compiler-errors`
2024-09-11Auto merge of #130050 - cjgillot:expect-attr-id, r=fee1-deadbors-167/+72
Enumerate lint expectations using AttrId This PR implements the idea I outlined in https://github.com/rust-lang/rust/issues/127884#issuecomment-2240338547 We can uniquely identify a lint expectation `#[expect(lint0, lint1...)]` using the `AttrId` and the index of the lint inside the attribute. This PR uses this property in `check_expectations`. In addition, this PR stops stashing expected diagnostics to wait for the unstable -> stable `LintExpectationId` mapping: if the lint is emitted with an unstable attribute, it must have been emitted by an `eval_always` query (like inside the resolver), so won't be loaded from cache. Decoding an `AttrId` from the on-disk cache ICEs, so we have no risk of accidentally checking an expectation. Fixes https://github.com/rust-lang/rust/issues/127884 cc `@xFrednet`
2024-09-11Auto merge of #129975 - notriddle:notriddle/lint-skip, r=GuillaumeGomezbors-202/+184
rustdoc: unify the short-circuit on all lints This is a bit of an experiment to see if it improves perf.
2024-09-11Update LLVM to 19 327ca6cDianQK-0/+0
2024-09-10Auto merge of #129403 - scottmcm:only-array-simd, r=compiler-errorsbors-1151/+864
Ban non-array SIMD Nearing the end of https://github.com/rust-lang/compiler-team/issues/621 ! Currently blocked on ~~https://github.com/rust-lang/compiler-builtins/pull/673~~ ~~https://github.com/rust-lang/compiler-builtins/pull/674~~ ~~https://github.com/rust-lang/rust/pull/129400~~ ~~https://github.com/rust-lang/rust/pull/129481~~ for windows.
2024-09-10Auto merge of #130200 - matthiaskrgr:rollup-2g4ijc5, r=matthiaskrgrbors-745/+740
Rollup of 5 pull requests Successful merges: - #130143 (miri-test-libstd: add missing BOOTSTRAP_ARGS) - #130173 (rustdoc: add two regression tests) - #130175 (`rustc_mir_transform` cleanups 3) - #130184 (coverage: Clean up terminology in counter creation) - #130185 (abi/compatibility test: remove tests inside repr(C) wrappers) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-10Rollup merge of #130185 - RalfJung:abi-compat-repr-c-wrappers, r=compiler-errorsMatthias Krüger-41/+11
abi/compatibility test: remove tests inside repr(C) wrappers When I wrote the test I assumed we'd guarantee ABI compatibility to be "structural" wrt `repr(C)` types, i.e. if two `repr(C)` types have all their fields be pairwise ABI-compatible then the types are ABI-compatible. That got removed from the ABI compatibility docs before they landed, though, so let's also remove it from this test.
2024-09-10Rollup merge of #130184 - Zalathar:counters, r=compiler-errorsMatthias Krüger-132/+102
coverage: Clean up terminology in counter creation Some of the terminology in this module is confusing, or has drifted out of sync with other parts of the coverage code. This PR therefore renames some variables and methods, and adjusts comments and debug logging statements, to make things clearer and more consistent. No functional changes, other than some small tweaks to debug logging.
2024-09-10Rollup merge of #130175 - nnethercote:rustc_mir_transform-cleanups-3, r=saethlinMatthias Krüger-570/+569
`rustc_mir_transform` cleanups 3 More cleanups in the style of https://github.com/rust-lang/rust/pull/129929. r? `@saethlin`
2024-09-10Rollup merge of #130173 - fmease:rustdoc-regression-tests, r=notriddleMatthias Krüger-0/+52
rustdoc: add two regression tests They were basically copy/pasted from `tests/ui/` to `tests/rustdoc-ui/`. Not sure if it's worth adding these, I can just close these issues as is if you want. This brings the number of https://github.com/rust-lang/rust/labels/T-rustdoc + https://github.com/rust-lang/rust/labels/E-needs-test from 3 down to 1. The remaining one – #103004 — is a nasty one to retroactively find a proper(!) test for. Fixes #98250. Fixes #107872. r? rustdoc
2024-09-10Rollup merge of #130143 - RalfJung:miri-test-libstd, r=compiler-errorsMatthias Krüger-2/+6
miri-test-libstd: add missing BOOTSTRAP_ARGS Note sure if BOOTSTRAP_ARGS will make any difference here, but all the other x.py invocations have it and I did not *deliberately* leave it away when I added these, so... probably best to add them? Also don't unnecessarily set BOOTSTRAP_SKIP_TARGET_SANITY while we are at it.
2024-09-10Auto merge of #130025 - Urgau:missing_docs-expect, r=petrochenkovbors-7/+41
Also emit `missing_docs` lint with `--test` to fulfil expectations This PR removes the "test harness" suppression of the `missing_docs` lint to be able to fulfil `#[expect]` (expectations) as it is now "relevant". I think the goal was to maybe avoid false-positive while linting on public items under `#[cfg(test)]` but with effective visibility we should no longer have any false-positive. Another possibility would be to query the lint level and only emit the lint if it's of expect level, but that is even more hacky. Fixes https://github.com/rust-lang/rust/issues/130021 try-job: x86_64-gnu-aux
2024-09-10generalize: track relevant info in cache keylcnr-16/+16
2024-09-10disallow `naked_asm!` outside of `#[naked]` functionsFolkert de Vries-16/+132
2024-09-10abi/compatibility test: remove tests inside repr(C) wrappersRalf Jung-41/+11
2024-09-10Auto merge of #129337 - EtomicBomb:rfc, r=notriddlebors-169/+953
rustdoc rfc#3662 changes under unstable flags * All new functionality is under unstable options * Adds `--merge=shared|none|finalize` flags * Adds `--parts-out-dir=<crate specific directory>` for `--merge=none` to write cross-crate info file for a single crate * Adds `--include-parts-dir=<previously specified directory>` for `--merge=finalize` to write cross-crate info files * `tests/rustdoc/` tests for the new flags
2024-09-10coverage: Avoid referring to "operands" in counter creationZalathar-8/+8
2024-09-10coverage: Avoid referring to out-edges as "branches"Zalathar-97/+80
This makes the graph terminology a bit more consistent, and avoids potential confusion with branch coverage.
2024-09-10coverage: Avoid referring to "coverage spans" in counter creationZalathar-28/+15
The counter-creation code needs to know which BCB nodes require counters, but isn't interested in why, so treat that as an opaque detail.
2024-09-10Auto merge of #130179 - workingjubilee:rollup-l78cv44, r=workingjubileebors-100/+265
Rollup of 11 pull requests Successful merges: - #128316 (Stabilize most of `io_error_more`) - #129473 (use `download-ci-llvm=true` in the default compiler config) - #129529 (Add test to build crates used by r-a on stable) - #129981 (Remove `serialized_bitcode` from `LtoModuleCodegen`.) - #130094 (Inform the solver if evaluation is concurrent) - #130132 ([illumos] enable SIGSEGV handler to detect stack overflows) - #130146 (bootstrap `naked_asm!` for `compiler-builtins`) - #130149 (Helper function for formatting with `LifetimeSuggestionPosition`) - #130152 (adapt a test for llvm 20) - #130162 (bump download-ci-llvm-stamp) - #130164 (move some const fn out of the const_ptr_as_ref feature) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-09Update the MIRI testsScott McMurray-30/+30
2024-09-09Fix the examples in cg_clifScott McMurray-8/+8
2024-09-09Ban non-array SIMDScott McMurray-1113/+826
2024-09-09Rollup merge of #130164 - RalfJung:const_ptr_as_ref, r=dtolnayJubilee-16/+16
move some const fn out of the const_ptr_as_ref feature When a `const fn` is still `#[unstable]`, it should generally use the same feature to track its regular stability and const-stability. Then when that feature moves towards stabilization we can decide whether the const-ness can be stabilized as well, or whether it should be moved into a new feature. Also, functions like `ptr::as_ref` (which returns an `Option<&mut T>`) require `is_null`, which is tricky and blocked on some design concerns (see #74939). So move those to the is_null feature gate, as they should be stabilized together with `ptr.is_null()`. Affects #91822, #122034, #75402, https://github.com/rust-lang/rust/issues/74939
2024-09-09Rollup merge of #130162 - onur-ozkan:bump-ci-llvm-stamp, r=KobzolJubilee-1/+1
bump download-ci-llvm-stamp This should trigger the download and extraction of the ci-llvm tarball, which should resolve https://github.com/rust-lang/rust/issues/130144.
2024-09-09Rollup merge of #130152 - krasimirgg:nsan, r=nikicJubilee-0/+1
adapt a test for llvm 20 No functional changes intended. ``@rustbot`` label: +llvm-main r? ``@nikic``
2024-09-09Rollup merge of #130149 - GrigorenkoPV:lifetime-suggestion, r=cjgillotJubilee-29/+15
Helper function for formatting with `LifetimeSuggestionPosition`
2024-09-09Rollup merge of #130146 - folkertdev:bootstrap-naked-asm, r=AmanieuJubilee-6/+60
bootstrap `naked_asm!` for `compiler-builtins` tracking issue: https://github.com/rust-lang/rust/issues/90957 parent PR: https://github.com/rust-lang/rust/pull/128651 in this PR, `naked_asm!` is added as an alias for `asm!` with one difference: `options(noreturn)` is always enabled by `naked_asm!`. That makes it future-compatible for when `naked_asm!` starts disallowing `options(noreturn)` later. The `naked_asm!` macro must be introduced first so that we can upgrade `compiler-builtins` to use it, and can then change the implementation of `naked_asm!` in https://github.com/rust-lang/rust/pull/128651 I've added some usages for `naked_asm!` in the tests, so we can be confident that it works, but I've left upgrading the whole test suite to the parent PR. r? ``@Amanieu``
2024-09-09Rollup merge of #130132 - sunshowers:illumos-sigsegv, r=NoratriebJubilee-4/+11
[illumos] enable SIGSEGV handler to detect stack overflows Use the same code as Solaris. I couldn't find any tests regarding this, but I did test a stage0 build against my stack-exhaust-test binary [1]. Before: ``` running with use_stacker = No, new_thread = false, make_large_local = false zsh: segmentation fault (core dumped) cargo run ``` After: ``` running with use_stacker = No, new_thread = false, make_large_local = false thread 'main' has overflowed its stack fatal runtime error: stack overflow zsh: IOT instruction (core dumped) cargo +stage0 run ``` Fixes #128568. [1] https://github.com/sunshowers/stack-exhaust-test/
2024-09-09Rollup merge of #130094 - workingjubilee:concurrency-is-real, r=lcnrJubilee-4/+72
Inform the solver if evaluation is concurrent Parallel compilation of a program can cause unexpected event sequencing. Inform the solver when this is true so it can skip invalid asserts.
2024-09-09Rollup merge of #129981 - nnethercote:rm-serialize_bitcode, r=antoyo,tmiaskoJubilee-17/+7
Remove `serialized_bitcode` from `LtoModuleCodegen`. It's unused. r? ``@bjorn3``
2024-09-09Rollup merge of #129529 - lqd:stable-new-solver, r=KobzolJubilee-4/+53
Add test to build crates used by r-a on stable r? ````````@Kobzol```````` I've opened other PRs for this one to work and they've landed already. I cherry-picked your commit, and added the last remaining pieces we needed I think.
2024-09-09Rollup merge of #129473 - Urgau:fix-llvm-if-unchanged, r=onur-ozkanJubilee-3/+13
use `download-ci-llvm=true` in the default compiler config https://github.com/rust-lang/rust/commit/1ca2708e77ac735adc3824501667694b4f9c1303 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified. ~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~ This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`. r? `````@onur-ozkan`````
2024-09-09Rollup merge of #128316 - GrigorenkoPV:io_error_a_bit_more, r=dtolnayJubilee-16/+16
Stabilize most of `io_error_more` Sadly, venting my frustration with t-libs-api is not a constructive way to solve problems and get things done, so I will try to stick to stuff that actually matters here. - Tracking issue for this feature was opened 3 years ago: #86442 - FCP to stabilize it was completed 19(!!) months ago: https://github.com/rust-lang/rust/issues/86442#issuecomment-1368082102 - A PR with stabilization was similarly open for 19 months: #106375, but nothing ever came out of it. Presumably (it is hard to judge given the lack of communication) because a few of the variants still had some concerns voiced about them, even after the FCP. So, to highlight a common sentiment: > Maybe uncontroversial variants can be stabilised first and other variants (such as `QuotaExceeded` or `FilesystemLoop`) later? [^1] [^1]: https://github.com/rust-lang/rust/issues/106375#issuecomment-1435762236 > I would like to voice support stabilization of the uncontroversial variants. This would get those variants to stable and focus the discussion around the more controversial ones. I don't see any particular reason that all of these must be stabilized at the same time. [...] [^2] [^2]: https://github.com/rust-lang/rust/pull/106375#issuecomment-1742661555 > Maybe some less-controversial subset could be stabilized sooner? What’s blocking this issue from making progress? [^3] [^3]: https://github.com/rust-lang/rust/issues/86442#issuecomment-1691187483 (got 30 upvotes btw) (and no response) So this is exactly what this PR does. It stabilizes the non-controversial variants now, leaving just a few of them behind. Namely, this PR stabilizes: - `HostUnreachable` - `NetworkUnreachable` - `NetworkDown` - `NotADirectory` - `IsADirectory` - `DirectoryNotEmpty` - `ReadOnlyFilesystem` - `StaleNetworkFileHandle` - `StorageFull` - `NotSeekable` - `FileTooLarge` - `ResourceBusy` - `ExecutableFileBusy` - `Deadlock` - `TooManyLinks` - `ArgumentListTooLong` - `Unsupported` This PR does not stabilize: - `FilesystemLoop` - `FilesystemQuotaExceeded` - `CrossesDevices` - `InvalidFilename` Hopefully, this will allow us to move forward with this highly and long awaited addition to std, both allowing to still polish the less clear parts of it and not leading to stagnation. r? joshtriplett because they seem to be listed as a part of t-libs-api and were one of the most responsive persons previously
2024-09-10Auto merge of #129778 - RalfJung:interp-lossy-typed-copy, r=saethlinbors-310/+1246
interpret: make typed copies lossy wrt provenance and padding A "typed copy" in Rust can be a lossy process: when copying at type `usize` (or any other non-pointer type), if the original memory had any provenance, that provenance is lost. When copying at pointer type, if the original memory had partial provenance (i.e., not the same provenance for all bytes), that provenance is lost. When copying any type with padding, the contents of padding are lost. This PR equips our validity-checking pass with the ability to reset provenance and padding according to those rules. Can be reviewed commit-by-commit. The first three commits are just preparation without any functional change. Fixes https://github.com/rust-lang/miri/issues/845 Fixes https://github.com/rust-lang/miri/issues/2182
2024-09-09Auto merge of #129789 - notriddle:notriddle/inline-stmt-local, r=GuillaumeGomezbors-197/+215
rustdoc: use strategic boxing to shrink `clean::Item` * `inline_stmt_id` is never a cross-crate DefId, so save space by not storing it. * Instead of two inner boxes for `Item`, use one.
2024-09-10Make `check_live_drops` into a `MirLint`.Nicholas Nethercote-3/+19
It's a thin wrapper around `check_live_drops`, but it's enough to fix the FIXME comment.
2024-09-10Remove references from some structs.Nicholas Nethercote-64/+56
In all cases the struct can own the relevant thing instead of having a reference to it. This makes the code simpler, and in some cases removes a struct lifetime.
2024-09-10Use `IndexVec::from_raw` to construct a const `IndexVec`.Nicholas Nethercote-3/+2
2024-09-10Add a useful comment about `PromoteTemps`.Nicholas Nethercote-0/+1
This was non-obvious to me.
2024-09-10Add a useful comment.Nicholas Nethercote-0/+2
2024-09-10Clarify a comment.Nicholas Nethercote-1/+1
The "as" is equivalent to "because", but I originally read it more like "when", which was confusing.
2024-09-10Inline and remove some functions.Nicholas Nethercote-395/+344
These are all functions with a single callsite, where having a separate function does nothing to help with readability. These changes make the code a little shorter and easier to read.
2024-09-10Improve comment formatting.Nicholas Nethercote-111/+151
By reflowing comment lines that are too long, and a few that are very short. Plus some other very minor formatting tweaks.
2024-09-09rustdoc: add two regression testsLeón Orell Valerian Liehr-0/+52
2024-09-09compiler: Inform the solver of concurrencyJubilee Young-4/+72
Parallel compilation of a program can cause unexpected event sequencing. Inform the solver when this is true so it can skip invalid asserts, then assert replaced solutions are equal if Some
2024-09-09Auto merge of #130165 - matthiaskrgr:rollup-fsnmz3t, r=matthiaskrgrbors-598/+662
Rollup of 9 pull requests Successful merges: - #129929 (`rustc_mir_transform` cleanups, round 2) - #130022 (Dataflow/borrowck lifetime cleanups) - #130064 (fix ICE in CMSE type validation) - #130067 (Remove redundant check in `symlink_hard_link` test) - #130131 (Print a helpful message if any tests were skipped for being up-to-date) - #130137 (Fix ICE caused by missing span in a region error) - #130153 (use verbose flag as a default value for `rust.verbose-tests`) - #130154 (Stabilize `char::MIN`) - #130158 (Update books) r? `@ghost` `@rustbot` modify labels: rollup