about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2023-07-13Rename VecDeque's rotate_left and rotate_right parametersPedro Lobo-23/+23
2023-07-12Auto merge of #113621 - ehuss:ignore-clippy-tests, r=Nilstriebbors-0/+9
Ignore flaky clippy tests. These tests are frequently failing due to an issue in ui_test. ui_test doesn't appear to have a blanket ignore instruction that I could find, so I just approximated it with ignoring both 32 and 64 bit. Fixes #113585
2023-07-12Ignore flaky clippy tests.Eric Huss-0/+9
2023-07-12Auto merge of #113214 - GuillaumeGomez:try-run-fix, r=ozkanonur,jyn514bors-27/+22
Don't fail early if `try_run` returns an error Fixes https://github.com/rust-lang/rust/issues/113208. Follow-up of #112962. r? `@jyn514`
2023-07-12Auto merge of #112945 - compiler-errors:tighten-span-of-adjustment-error, ↵bors-452/+426
r=oli-obk (re-)tighten sourceinfo span of adjustments in MIR Diagnostics rely on the spans of MIR statements being (approximately) correct in order to give suggestions relative to that span (i.e. `shrink_to_hi` and `shrink_to_lo`). I discovered that we're *intentionally* lowering THIR exprs with their parent expr's span if they come from adjustments that are due to a parent expression. While I understand why that may be desirable to demonstrate the relationship of an adjustment and the expression that requires it, it leads to 1. very verbose borrowck output 2. incorrect spans for suggestions Some diagnostics get around that by giving suggestions relative to other spans we've collected during MIR lowering, such as the span of the method's identifier (e.g. `name` in `.name()`), but this doesn't work too well when things come from desugaring. I assume it also has lead to numerous tweaks and complications to diagnostics code down the road, which this PR doesn't necessarily aim to fix but may open the gates to fixing later... The last three commits are simplifications due to the fact that we can assume that the move span actually points to what is being moved (and a test). This regressed in #89110, which was debated somewhat in #90286. cc `@Aaron1011` who originally made this change. r? diagnostics Fixes #113547 Fixes #111016
2023-07-12Auto merge of #113569 - RalfJung:miri, r=oli-obkbors-161/+747
miri: protect Move() function arguments during the call This gives `Move` operands a meaning specific to function calls: - for the duration of the call, the place the operand comes from is protected, making all read and write accesses insta-UB. - the contents of that place are reset to `Uninit`, so looking at them again after the function returns, we cannot observe their contents Turns out we can replace the existing "retag return place" hack with the exact same sort of protection on the return place, which is nicely symmetric. Fixes https://github.com/rust-lang/rust/issues/112564 Fixes https://github.com/rust-lang/miri/issues/2927 This starts with a Miri rustc-push, since we'd otherwise conflict with a PR that recently landed in Miri. (The "miri tree borrows" commit is an unrelated cleanup I noticed while doing the PR. I can remove it if you prefer.) r? `@oli-obk`
2023-07-12Auto merge of #113573 - lcnr:typeck-results, r=compiler-errorsbors-15/+8
remove unnecessary `Rc` the typeck results are already in a `RefCell`, so we don't need to wrap its fields in an `Rc`
2023-07-12Auto merge of #113608 - workingjubilee:rollup-8763ius, r=workingjubileebors-94/+140
Rollup of 5 pull requests Successful merges: - #113373 (various download-rustc fixes) - #113385 (style-guide: Fix chain example to match rustfmt behavior) - #113567 (While let suggestion will work for closure body) - #113579 (Revert "fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy …) - #113595 (Use constants from object crate) r? `@ghost` `@rustbot` modify labels: rollup
2023-07-11Rollup merge of #113595 - cchiw:object_consts, r=workingjubileeJubilee-4/+3
Use constants from object crate Replace hard-coded values with `GNU_PROPERTY_{X86|AARCH64}_FEATURE_1_AND` from the object crate. When working on [issue](https://github.com/rust-lang/rust/issues/103001) it was suggested that we moved these constants to the object crate . [PR](https://github.com/gimli-rs/object/pull/537). Now that that the object crate has been updated [PR](https://github.com/rust-lang/rust/pull/111413) we can make this change.
2023-07-11Rollup merge of #113579 - ekusiadadus:master, r=albertlarsan68Jubilee-5/+1
Revert "fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy … ## why - [x] revert my broken PR https://github.com/rust-lang/rust/pull/110906 This reverts commit 08ce68b6a6bad360e9c3611ad60cf6598401f878.
2023-07-11Rollup merge of #113567 - chenyukang:yukang-fix-113354-while-let, r=cjgillotJubilee-38/+61
While let suggestion will work for closure body Fixes #113354
2023-07-11Rollup merge of #113385 - joshtriplett:style-guide-cleanup-chains, ↵Jubilee-4/+3
r=calebcartwright style-guide: Fix chain example to match rustfmt behavior The style guide gave an example of breaking a multi-line chain element and all subsequent elements to a new line, but that same example and the accompanying text also had several chain items stacked on the first line. rustfmt doesn't do this, except when the rule saying to combine ``` shrt .y() ``` into ``` shrt.y() ``` applies. This is a bugfix to match rustfmt behavior, so it's not a breaking change, and it just needs a ``@rust-lang/style`` reviewer to r+.
2023-07-11Rollup merge of #113373 - jyn514:download-rustc-fixes, r=albertlarsan68Jubilee-43/+72
various download-rustc fixes separated out from https://github.com/rust-lang/rust/pull/112143 because it keeps getting stuck in limbo. best reviewed commit-by-commit
2023-07-11Revert "Fix `x test lint-docs` when download-rustc is enabled"jyn-7/+0
This was not the correct fix. The problem was two-fold: - `download-rustc` didn't respect `llvm.assertions` - `rust-dev` was missing a bump to `download-ci-llvm-stamp` The first is fixed in this PR and the latter was fixed a while ago. Revert this change to avoid breaking `rpath = false`.
2023-07-11Don't depend on crate names in tests/ui-fulldeps/missing-rustc-driver-error.rsjyn-13/+3
Not only are they a pain to update, but they differ depending on whether `parallel-rustc` is enabled or not
2023-07-11Move `ci_rustc_dir` to Config and use it consistentlyjyn-8/+9
2023-07-11Use constants from object crateCharisee-4/+3
Replace hard-coded values with GNU_PROPERTY_{X86|AARCH64}_FEATURE_1_AND from the object crate.
2023-07-11Auto merge of #112984 - BoxyUwU:debug_with_infcx, r=compiler-errorsbors-95/+464
Introduce `trait DebugWithInfcx` to debug format types with universe info Seeing universes of infer vars is valuable for debugging but currently we have no way of easily debug formatting a type with the universes of all the infer vars shown. In the future I hope to augment the new solver's proof tree output with a `DebugWithInfcx` impl so that it can show universes but I left that out of this PR as it would be non trivial and this is already large and complex enough. The goal here is to make the various abstractions taking `T: Debug` able to use the codepath for printing out universes, that way we can do `debug!("{:?}", my_x)` and have `my_x` have universes shown, same for the `write!` macro. It's not possible to put the `Infcx: InferCtxtLike<I>` into the formatter argument to `Debug::fmt` so it has to go into the self ty. For this we introduce the type `OptWithInfcx<I: Interner, Infcx: InferCtxtLike<I>, T>` which has the data `T` optionally coupled with the infcx (more on why it's optional later). Because of coherence/orphan rules it's not possible to write the impl `Debug for OptWithInfcx<..., MyType>` when `OptWithInfcx` is in a upstream crate. This necessitates a blanket impl in the crate defining `OptWithInfcx` like so: `impl<T: DebugWithInfcx> Debug for OptWithInfcx<..., T>`. It is not intended for people to manually call `DebugWithInfcx::fmt`, the `Debug` impl for `OptWithInfcx` should be preferred. The infcx has to be optional in `OptWithInfcx` as otherwise we would end up with a large amount of code duplication. Almost all types that want to be used with `OptWithInfcx` do not themselves need access to the infcx so if we were to not optional we would end up with large `Debug` and `DebugWithInfcx` impls that were practically identical other than that when formatting their fields we wrap the field in `OptWithInfcx` instead of formatting it alone. The only types that need access to the infcx themselves are ty/const/region infer vars, everything else is implemented by having the `Debug` impl defer to `OptWithInfcx` with no infcx available. The `DebugWithInfcx` impl is pretty much just the standard `Debug` impl except that instead of recursively formatting fields with `write!(f, "{x:?}")` we must do `write!(f, "{:?}", opt_infcx.wrap(x))`. This is some pretty rough boilerplate but I could not think of an alternative unfortunately. `OptWithInfcx::wrap` is an eager `Option::map` because 99% of callsites were discarding the existing data in `OptWithInfcx` and did not need lazy evaluation. A trait `InferCtxtLike` was added instead of using `InferCtxt<'tcx>` as we need to implement `DebugWithInfcx` for types living in `rustc_type_ir` which are generic over an interner and do not have access to `InferCtxt` since it lives in `rustc_infer`. Additionally I suspect that adding universe info to new solver proof tree output will require an implementation of `InferCtxtLike` for something that is not an `InferCtxt` although this is not the primary motivaton. --- To summarize: - There is a type `OptWithInfcx` which bundles some data optionally with an infcx with allows us to pass an infcx into a `Debug` impl. It's optional instead of being there unconditionally so that we can share code for `Debug` and `DebugWithInfcx` impls that don't care about whether there is an infcx available but have fields that might care. - There is a trait `DebugWithInfcx` which allows downstream crates to add impls of the form `Debug for OptWithInfcx<...>` which would normally be forbidden by orphan rules/coherence. - There is a trait `InferCtxtLike` to allow us to implement `DebugWithInfcx` for types that live in `rustc_type_ir` This allows debug formatting various `ty::*` structures with universes shown by using the `Debug` impl for `OptWithInfcx::new(ty, infcx)` --- This PR does not add `DebugWithInfcx` impls to absolutely _everything_ that should realistically have them, for example you cannot use `OptWithInfcx<Obligation<Predicate>>`. I am leaving this to a future PR to do so as it would likely be a lot more work to do.
2023-07-11fix handling of alignment for dyn-sized placesRalf Jung-9/+12
2023-07-11update Operand::Move docsRalf Jung-4/+10
2023-07-11miri tree borrows: skip retag_reference early if there is no NewPermissionRalf Jung-13/+15
2023-07-11miri: protect Move() function arguments during the callRalf Jung-154/+607
2023-07-11Auto merge of #103754 - SUPERCILEX:filled-mut, r=m-ou-sebors-0/+7
Add back BorrowedBuf::filled_mut This is useful if you want to do some processing on the bytes while still using the BorrowedBuf. The API was removed in https://github.com/rust-lang/rust/pull/97015 with no explanation. The RFC also has it as part of its API, so this just seems like a mistake: [RFC](https://rust-lang.github.io/rfcs/2930-read-buf.html#:~:text=inline%5D%0A%20%20%20%20pub%20fn-,filled_mut,-(%26mut%20self)) ACP: https://github.com/rust-lang/libs-team/issues/139
2023-07-11Auto merge of #113577 - matthiaskrgr:rollup-vaa83ip, r=matthiaskrgrbors-66/+498
Rollup of 4 pull requests Successful merges: - #112717 (Implement a few more rvalue translation to smir) - #113310 (Don't suggest `impl Trait` in path position) - #113497 (Support explicit 32-bit MIPS ABI for the synthetic object) - #113560 (Lint against misplaced where-clauses on associated types in traits) r? `@ghost` `@rustbot` modify labels: rollup
2023-07-12Revert "fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy error"ekusiadadus-5/+1
This reverts commit 08ce68b6a6bad360e9c3611ad60cf6598401f878.
2023-07-11Rollup merge of #113560 - fmease:assoc-tys-in-traits-depr-wc-loc, ↵Matthias Krüger-21/+81
r=compiler-errors Lint against misplaced where-clauses on associated types in traits Extends the scope of the lint `deprecated_where_clause_location` (#89122) from associated types in impls to associated types in any location (impl or trait). This is only relevant for `#![feature(associated_type_defaults)]`. Previously we didn't warn on the following code for example: ```rs #![feature(associated_type_defaults)] trait Trait { type Assoc where u32: Copy = (); } ``` Personally I would've preferred to emit a *hard* error here instead of a lint warning since the feature is unstable but unfortunately we are constrained by back compat as associated type defaults won't necessarily trigger the feature-gate error if they are inside of a macro call (since they use a post-expansion feature-gate due to historical reasons, see also #66004). I've renamed and moved related preexisting tests: 1. They test AST validation passes not the parser & thus shouldn't live in `parser/` (historical reasons?). 2. One test file was named after type aliases even though it tests assoc tys. `@rustbot` label A-lint
2023-07-11Rollup merge of #113497 - xSetech:mips_32_abi, r=davidtwcoMatthias Krüger-2/+10
Support explicit 32-bit MIPS ABI for the synthetic object PR #95604 introduced a "synthetic object file to ensure all exported and used symbols participate in the linking". One constraint on this file is that for MIPS-based targets, its architecture-specific ELF flags must be the same as all other object files passed to the linker. That's enforced by LLD, here: https://github.com/llvm/llvm-project/blob/llvmorg-16.0.6/lld/ELF/Arch/MipsArchTree.cpp#L77 The current approach to determining e_flags for 32-bit was implemented in PR #96930, which links to this issue that summarizes the problem well: https://github.com/ayrtonm/psx-sdk-rs/issues/9 > ... the temporary object file is created with an e_flags which is > invalid for 32-bit MIPS targets. The main issue is that it omits the ABI > bits (EF_MIPS_ABI_O32) which implies it uses the N64 ABI. To enable the N32 MIPS ABI (which succeeded O32), this patch enables setting the synthetic object's ABI based on the target "llvm-abiname" field, if it's given; otherwise, the O32 ABI is assumed for 32-bit MIPS targets. More information about the N32 ABI can be found here: https://web.archive.org/web/20160121005457/http://techpubs.sgi.com/library/manuals/2000/007-2816-005/pdf/007-2816-005.pdf
2023-07-11Rollup merge of #113310 - jieyouxu:dont-suggest-impl-trait-in-paths, r=lcnrMatthias Krüger-2/+36
Don't suggest `impl Trait` in path position Fixes #113264.
2023-07-11Rollup merge of #112717 - celinval:stable-mir-rvalue-1, r=oli-obkMatthias Krüger-41/+371
Implement a few more rvalue translation to smir Add the implementation for a few more RValue variants. For now, I simplified the stable version of `RValue::Ref` by removing the notion of Region. r? `@oli-obk`
2023-07-11Auto merge of #113470 - compiler-errors:new-solver-structurally-resolve-pat, ↵bors-5/+11
r=lcnr Structurally resolve in pattern matching when peeling refs in new solver Let me know if you want me to commit the minimized test: ```rust fn test() {} fn test2() {} fn main() { let tests: &[(_, fn())] = &[ ("test", test), ("test2", test2), ]; for (a, b) in tests { todo!(); } } ``` In that test above, the match scrutinee is `<std::vec::Iter<(&'static str, fn())> as Iterator>::Item`, which we cannot peel the refs from. We also need to structurally resolve in the loop, since structural resolve is inherently shallow. I haven't come up with a test where this matters, but I can if you care. Also, I removed two other calls to `resolve_vars_with_obligations` in diagnostics code that I'm pretty convinced are not useful. r? `@lcnr`
2023-07-11Don't fail early if `try_run` returns an errorGuillaume Gomez-27/+22
2023-07-11While let suggestion will work for closureyukang-38/+61
2023-07-11Auto merge of #113175 - bryangarza:safe-transmute-rustc-coinductive, ↵bors-56/+5
r=compiler-errors Enable coinduction support for Safe Transmute This patch adds the `#[rustc_coinductive]` annotation to `BikeshedIntrinsicFrom`, so that it's possible to compute transmutability for recursive types. ## Motivation Safe Transmute currently already supports references (#110662). However, if a type is implemented recursively, it leads to an infinite loop when we try to check if transmutation is safe. A couple simple examples that one might want to write, that are currently not possible to check transmutability for: ```rs #[repr(C)] struct A(&'static B); #[repr(C)] struct B(&'static A); ``` ```rs #[repr(C)] enum IList<'a> { Nil, Cons(isize, &'a IList<'a>) } #[repr(C)] enum UList<'a> { Nil, Cons(usize, &'a UList<'a>) } ``` Previously, `@jswrenn` was considering writing a co-inductive solver from scratch, just for the `rustc_tranmsute` crate. Later on as I started working on Safe Transmute myself, I came across the `#[rustc_coinductive]` annotation, which is currently only being used for the `Sized` trait. Leveraging this trait actually solved the problem entirely, and it saves a lot of duplicate work that would have had to happen in `rustc_transmute`.
2023-07-11remove unnecessary `Rc`lcnr-15/+8
2023-07-11Auto merge of #113130 - chriswailes:android-library-defs, r=Amanieubors-47/+58
Correct the Android stat struct definitions See https://cs.android.com/android/platform/superproject/+/master:bionic/libc/include/sys/stat.h for reference. Originally part of https://github.com/rust-lang/rust/pull/112858
2023-07-11Auto merge of #111717 - Urgau:uplift_fn_null_check, r=oli-obkbors-223/+289
Uplift `clippy::fn_null_check` lint This PR aims at uplifting the `clippy::fn_null_check` lint into rustc. ## `incorrect_fn_null_checks` (warn-by-default) The `incorrect_fn_null_checks` lint checks for expression that checks if a function pointer is null. ### Example ```rust let fn_ptr: fn() = /* somehow obtained nullable function pointer */ if (fn_ptr as *const ()).is_null() { /* ... */ } ``` ### Explanation Function pointers are assumed to be non-null, checking for their nullity is incorrect. ----- Mostly followed the instructions for uplifting a clippy lint described here: https://github.com/rust-lang/rust/pull/99696#pullrequestreview-1134072751 `@rustbot` label: +I-lang-nominated r? compiler
2023-07-11Auto merge of #113316 - DrMeepster:underefer_perf, r=oli-obkbors-124/+186
Rewrite `UnDerefer`, again This PR is intended to improve the perf regression introduced by #112882. `UnDerefer` has been separated out again for borrowck reasons. It was a bit overzealous to remove it in the previous PR. r? `@oli-obk`
2023-07-10optimization round 2DrMeepster-34/+96
- moved work from `find_local` to `gather_statement` - created custom iterator for `iter_projections` - reverted change from `IndexVec` to `FxIndexMap`
2023-07-11Auto merge of #113559 - matthiaskrgr:rollup-jrqyctc, r=matthiaskrgrbors-32/+47
Rollup of 7 pull requests Successful merges: - #113386 (style-guide: Expand example of combinable expressions to include arrays) - #113523 (Reuse LLVMConstInBoundsGEP2) - #113528 (Dynamically size sigaltstk in rustc) - #113543 (Remove `rustc_llvm` from llvm-stamp nags) - #113548 (Update books) - #113551 (bootstrap: Don't print "Skipping" twice) - #113556 (Don't use serde-derive in the rls shim) r? `@ghost` `@rustbot` modify labels: rollup
2023-07-11Structurally resolve in pattern matching when peeling refs in new solverMichael Goulet-5/+11
2023-07-11Lint against misplaced where-clauses on assoc tys in traitsLeón Orell Valerian Liehr-21/+81
2023-07-11Rollup merge of #113556 - cuviper:trim-rls, r=Mark-SimulacrumMatthias Krüger-6/+5
Don't use serde-derive in the rls shim The already-small RLS shim can get a little smaller, and faster to build, if we drop the serde-derive dependency and decode the one "method" field it needs manually from `serde_json::Value`.
2023-07-11Rollup merge of #113551 - jyn514:dry-run-exclude, r=ozkanonurMatthias Krüger-3/+7
bootstrap: Don't print "Skipping" twice Bootstrap executes itself twice: once with DryRun::SelfCheck and DryRun::Disabled. Change it not to print the "Skipping" message if SelfCheck is enabled. See https://github.com/rust-lang/rust/actions/runs/5503931599/jobs/10029625567?pr=113514#step:24:772.
2023-07-11Rollup merge of #113548 - rustbot:docs-update, r=ehussMatthias Krüger-0/+0
Update books ## rust-lang/book 1 commits in 21cf840842bdf768a798869f06373c96c1cc5122..668c64760b5c7ea654facb4ba5fe9faddfda27cc 2023-06-29 13:50:36 UTC to 2023-06-29 13:50:36 UTC - Remove adjective about what kind of number this is ## rust-lang/edition-guide 2 commits in f63e578b92ff43e8cc38fcaa257b660f45c8a8c2..2751bdcef125468ea2ee006c11992cd1405aebe5 2023-07-10 14:29:51 UTC to 2023-07-08 18:05:44 UTC - Update a link to a section in the cargo workspaces. (rust-lang/edition-guide#283) - b'...' byte strings -> byte chars (rust-lang/edition-guide#282) ## rust-embedded/book 2 commits in f2aed2fe8e9f55508c86ba3aa4b6789b18a08a22..1e5556dd1b864109985d5871616ae6b9164bcead 2023-06-29 07:34:47 UTC to 2023-06-27 23:43:06 UTC - add constgebra to list of math crates (rust-embedded/book#358) - Switch to GHMQ (rust-embedded/book#357) ## rust-lang/nomicon 1 commits in c369e4b489332f8721fbae630354fa83385d457d..302b995bcb24b70fd883980fd174738c3a10b705 2023-07-05 16:08:32 UTC to 2023-07-05 16:08:32 UTC - Minor improvements (rust-lang/nomicon#414) ## rust-lang/reference 5 commits in 5ca365eac678cb0d41a20b3204546d6ed70c7171..1ea0178266b3f3f613b0fabdaf16a83961c99cdb 2023-07-08 22:11:07 UTC to 2023-06-26 16:51:55 UTC - Remove doc of unstable feature of never type (rust-lang/reference#1376) - Typo: 'assingee' to 'assignee' in expressions.md (rust-lang/reference#1377) - str type: make sentence more readable (rust-lang/reference#1374) - Remove obsolete note about soundness hole in type-layout.md (rust-lang/reference#1367) - Typo: 'a' to 'an' in destructors.md (rust-lang/reference#1371) ## rust-lang/rust-by-example 1 commits in 57636d6926762861f34e030d52ca25a71e95e5bf..8a87926a985ce32ca1fad1be4008ee161a0b91eb 2023-07-07 22:44:06 UTC to 2023-07-07 22:44:06 UTC - Hint for RGB color calculation (rust-lang/rust-by-example#1726) ## rust-lang/rustc-dev-guide 18 commits in 17fe3e948498c50e208047a750f17d6a8d89669b..b5a12d95e32ae53791cc6ab44417774667ed2ac6 2023-07-09 14:50:50 UTC to 2023-06-28 04:55:24 UTC - fix: update link to function coverage (rust-lang/rustc-dev-guide#1727) - Fix a bug in getting-started.md (rust-lang/rustc-dev-guide#1726) - improve explanation of placing tests in separate file (rust-lang/rustc-dev-guide#1721) - various fixes/improvements to Contributing chapter (rust-lang/rustc-dev-guide#1723) - ty::ConstKind has moved (rust-lang/rustc-dev-guide#1724) - document `./x test --rustc-args` option (rust-lang/rustc-dev-guide#1719) - tests/run-make files have moved (rust-lang/rustc-dev-guide#1716) - replace dead link (rust-lang/rustc-dev-guide#1717) - fix link (rust-lang/rustc-dev-guide#1718) - update link (rust-lang/rustc-dev-guide#1709) - typo (rust-lang/rustc-dev-guide#1706) - OwningRef exists no more (rust-lang/rustc-dev-guide#1715) - Try to avoid confusion (rust-lang/rustc-dev-guide#1713) - Issue1707 doc simply use x (rust-lang/rustc-dev-guide#1710) - include rustc-dev-guide's own issues in suggested search (rust-lang/rustc-dev-guide#1708) - Improve feature gate and x.py docs (rust-lang/rustc-dev-guide#1701) - Fix some links (rust-lang/rustc-dev-guide#1705) - Define more lint terms. (rust-lang/rustc-dev-guide#1681)
2023-07-11Rollup merge of #113543 - cuviper:triagebot-llvm, r=jyn514Matthias Krüger-4/+0
Remove `rustc_llvm` from llvm-stamp nags LLVM is not *built* by `compiler/rustc_llvm` at all, only bindings on top of it, so there's no need to bump `download-ci-llvm-stamp` for that.
2023-07-11Rollup merge of #113528 - ↵Matthias Krüger-5/+22
workingjubilee:use-at-minsigstksz-in-rustc-signal-handler, r=WaffleLapkin Dynamically size sigaltstk in rustc rustc installs a signal stack that assumes that MINSIGSTKSZ is a constant, unchanging value. Newer hardware undermines that assumption greatly, with register files larger than glibc's traditional static MINSIGSTKZ. Properly handle this so that it is correct on all supported Linux versions with all CPUs.
2023-07-11Rollup merge of #113523 - workingjubilee:reuse-const-inbounds-gep2, r=cuviperMatthias Krüger-14/+3
Reuse LLVMConstInBoundsGEP2 We have had LLVM 14 as our minimum for a bit now.
2023-07-11Rollup merge of #113386 - joshtriplett:style-guide-combinable-expressions, ↵Matthias Krüger-0/+10
r=compiler-errors style-guide: Expand example of combinable expressions to include arrays Arrays are allowed as combinable expressions, but none of the examples show that.
2023-07-10Auto merge of #113544 - Kobzol:ci-macos-13, r=jyn514bors-7/+7
CI: use `macos-13` runner for Apple jobs Trying if performance of Apple CI improves with macOS 13 and SIP disabled. Speed-up: ``` x86_64-apple-1: ~2h 20m > ~1h 20m x86_64-apple-2: ~1h 45m > ~1h 15m ``` r? `@pietroalbini`
2023-07-10Correct the Android stat struct definitionsChris Wailes-47/+58
See https://cs.android.com/android/platform/superproject/+/master:bionic/libc/include/sys/stat.h for reference.