[stable] probe-stack=call everywhere again, for now.
To buy time on issue 83139, revert effect of PR 77885: We will not conditionally
enable probe-stack=inline-asm on LLVM 11+ anymore on any of our targets that
opted into doing so on PR #77885 (and were subsequently configured to do so in a
fine grained manner on PR #80838).
After we resolve 83139 (potentially by backporting a fix to LLVM, or potentially
by deciding that one cannot rely on the quality of our DWARF output in the
manner described in issue 83139), we can change this back.
cc #83139
To buy time on issue 83139, revert effect of PR 77885: We will not conditionally
enable probe-stack=inline-asm on LLVM 11+ anymore on any of our targets that
opted into doing so on PR #77885 (and were subsequently configured to do so in a
fine grained manner on PR #80838).
After we resolve 83139 (potentially by backporting a fix to LLVM, or potentially
by deciding that one cannot rely on the quality of our DWARF output in the
manner described in issue 83139), we can change this back.
(Update: fixed formatting issue.)
[stable] 1.51.0 release
Also includes backports of the release notes, as well as:
* SplitInclusive is public API #83372
* std: Fix a bug on the wasm32-wasi target opening files #82804
* Fix io::copy specialization using copy_file_range when writer was opened with O_APPEND #82417
r? `@Mark-Simulacrum`
This commit fixes an issue pointed out in #82758 where LTO changed the
behavior of a program. It turns out that LTO was not at fault here, it
simply uncovered an existing bug. The bindings to
`__wasilibc_find_relpath` assumed that the relative portion of the path
returned was always contained within thee input `buf` we passed in. This
isn't actually the case, however, and sometimes the relative portion of
the path may reference a sub-portion of the input string itself.
The fix here is to use the relative path pointer coming out of
`__wasilibc_find_relpath` as the source of truth. The `buf` used for
local storage is discarded in this function and the relative path is
copied out unconditionally. We might be able to get away with some
`Cow`-like business or such to avoid the extra allocation, but for now
this is probably the easiest patch to fix the original issue.
Revert PR 81473 to resolve (on beta) issues 81626 and 81658.
Revert PR #81473 to resolve (on beta) issues #81626 and #81658.
Revert "Add missing brace"
This reverts commit 85ad773049.
Revert "Simplify base_expr"
This reverts commit 899aae465e.
Revert "Warn write-only fields"
This reverts commit d3c69a4c0d.
[beta] backports
This backports some beta-accepted PRs and one additional LLVM fix for s390x.
- rustdoc: treat edition 2021 as unstable #82207
- Fix popping singleton paths in when generating E0433 #82259
- libtest: Fix unwrap panic on duplicate TestDesc #82274
- [intra-doc links] Don't check feature gates of items re-exported across crates #82295
- rustdoc: Remove duplicate "List of all items" #82484
- Substitute erased lifetimes on bad placeholder type #82494
- Revert LLVM D81803 because it broke Windows 7 #82605
- [SystemZ] Assign the full space for promoted and split outgoing args. rust-lang/llvm-project#95
r? `@Mark-Simulacrum`
It should be never break another crate to re-export a public item.
Note that this doesn't check the feature gate at
*all* for other crates:
- Feature-gates aren't currently serialized, so the only way to check
the gate is with ad-hoc attribute checking.
- Checking the feature gate twice (once when documenting the original
crate and one when documenting the current crate) seems not great.
This should still catch using the feature most of the time though, since
people tend to document their own crates.
(cherry picked from commit fdb32e997b)
It is possible for different tests to collide to the same TestDesc
when macros are involved. That is a bug, but it didn’t cause a panic
until #81367. For now, change the code to ignore this problem.
Fixes#81852.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
(cherry picked from commit 1605af015c)
[beta] Fix TcpListener::accept() on x86 Android on beta by disabling the use of accept4.
This is the same as #82475, but for beta.
In a nutshell: `TcpListener::accept` is broken on Android x86 on stable and beta because it performs a raw `accept4` syscall, which doesn't exist on that platform. This was originally reported in #82400, so you can find more details there.
`@rustbot` label +O-android
r? `@Mark-Simulacrum`
On x86 before Linux 4.3, accept4 is not a separate syscall.
Instead, it can be called using `socketcall(SYS_ACCEPT4, ...).
Rather than implementing that here, just fall back to `accept`.
[beta] backports
This backports some PRs and bumps to the released stable compiler:
* bootstrap: fix wrong docs installation path #81968
* parser: Fix panic in 'const impl' recovery #81876
* Don't display `mut` in arguments for functions documentation #81831
r? `@Mark-Simulacrum`
The panic happens when in recovery parsing a full `impl`
(`parse_item_impl`) fails and we drop the `DiagnosticBuilder` for the
recovery suggestion and return the `parse_item_impl` error.
We now raise the original error "expected identifier found `impl`" when
parsing the `impl` fails.
Note that the regression test is slightly simplified version of the
original repro in #81806, to make the error output smaller and more
resilient to unrelated changes in parser error messages.
Fixes#81806
Rollup of 7 pull requests
Successful merges:
- #80011 (Stabilize `peekable_next_if`)
- #81580 (Document how `MaybeUninit<Struct>` can be initialized.)
- #81610 (BTreeMap: make Ord bound explicit, compile-test its absence)
- #81664 (Avoid a hir access inside get_static)
- #81675 (Make rustdoc respect `--error-format short` in doctests)
- #81753 (Never MIR inline functions with a different instruction set)
- #81795 (Small refactor with Iterator::reduce)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup