[libc++] Drop the unrepresentative search_n benchmark (#184783)
This benchmark isn't very good at benchmarking `search_n`, since a good
`search_n` implementation can go through it in ~10 perfectly predictable
steps. We can drop it to avoid spending unnecessary resources. This also
fixes that the two benchmark sets have identical names.
Fixes #183832
[LifetimeSafety] Handle escape through assignment to global storage (#181646)
This PR allows for modelling escape of parameters to global storage, and
dangling global storage.
Change summary:
1. Created `GlobalEscapeFact` as a subclass of `OriginEscapesFact`
2. Emit a `GlobalEscapeFact` for all origins with global-storage that
remain live at function exit.
3. Integrated into warning reporting as necessary, introducing the
groups `-Wlifetime-safety-dangling-global` and
`-Wlifetime-safety-dangling-global-moved`
4. Wrote sema tests for escape to a variety of global storage locations.
[lldb] Use AppendMessageWithFormatv instead of AppendMessageWithFormat (#185012)
When the message ends with a newline. ...WithFormatv adds a newline
automatically.
Note that the ":x" style is lower case hex with 0x prefix. (see
llvm/include/llvm/Support/FormatProviders.h)
This change does not change uses where multiple chunks are emitted to
one line, or the message has embedded newlines. I want to deal with
these more complex cases later.
This is round 3 of N doing this, converting a few files at a time.
[clang-tidy][NFC] Use universal utility mock in testcases [1/N] (#185431)
Follow-up PR of #185210.
Only half of the affected test files are converted in this patch.
[libc++] Reduce the amount of formatter code included in <vector> (#178683)
`formatter::parse` and `formatter::format` only have to accept
`basic_format_parse_context` and `basic_format_context` respectively,
which are only guaranteed to be provided via `<format>`. This allows us
to only declare the functions for `formatter<bool>` in `<vector>` and
define them if `<format>` is included. This reduces the amount of time
it takes to parse `<vector>` by ~15% on my system.
make uvm_io.c build conditional to save space on ramdisks
uvm_io() calls in kern_sysctl.c are under #ifndef SMALL_KERNEL
sys_process.c has a uvm_io() call but is only built for ptrace | dt
feedback from miod@
rclone: updated to 1.73.2
1.73.2
- Bug Fixes
- build
- Update to go 1.25.8 to fix CVE-2026-27137CVE-2026-27138CVE-2026-25679CVE-2026-27142 (Nick Craig-Wood)
- Update github.com/cloudflare/circl to v1.6.3 to fix CVE-2026-1229 (Nick Craig-Wood)
- Update to golang.org/x/net v0.51.0 to fix CVE-2026-27141 (Nick Craig-Wood)
- docs fixes:
- bisync: Add group Sync to the bisync command (Jan-Philipp Reßler)
- Note that --use-server-modtime only works on some backends (Nick Craig-Wood)
- Document unsupported S3 object keys with double slashes (Adam Kasztenny)
- Fix headers hierarchy for mount.md (Dark Dragon)
- Fix new drive flag typo in changelog (razorloves)
- Archive
- Extract: fix extraction with "./" prefix from tar entry paths (Varun Chawla)
- Drime
- Fix chunk-uploaded files ignoring workspace ID (a1pcm)
[5 lines not shown]
[MC] Rename PrivateGlobalPrefix to InternalSymbolPrefix. NFC (#185164)
The "private global" terminology, likely came from
llvm/lib/IR/Mangler.cpp, is misleading: "private" is the opposite of
"global", and these prefixed symbols are not global in the object file
format sense (e.g. ELF has STB_GLOBAL while these symbols are always
STB_LOCAL). The term "internal symbol" better describes their purpose:
symbols for internal use by compilers and assemblers, not meant to be
visible externally.
This rename is a step toward adopting the "internal symbol prefix"
terminology agreed with GNU as
(https://sourceware.org/pipermail/binutils/2026-March/148448.html).
Remove custom Rx A-MPDU reordering code from iwx(4).
The equivalent code was deleted from iwlwifi in 2023. It is only needed for
iwm 9k devices running with multiple Rx queues. AX200 and later devices do
Rx reordering in firmware and provide flags the driver can check to avoid
sending duplicate frames up the stack.
See linux.git commit 29fa9a984b6d1075020f12071a89897fd62ed27f
and linux.git commit ff8e3a40d78bc414213b2724ad775adf98780a5a
ok phessler@ kettenis@ kevlo@
Tested:
AX200: jmc, stsp
AX210 (MA): kettenis, kevlo
AX211 (BZ): stsp
[libc++] Fix strict aliasing violation for `deque::const_iterator` (#136067)
When the allocators use fancy pointers, the internal map of `deque`
stores `FancyPtr<T>` objects, and the previous strategy accessed these
objects via `const FancyPtr<const T>` lvalues, which usually caused core
language undefined behavior. Now `const_iterator` stores `FancyPtr<const
FancyPtr<T>>` instead of `FancyPtr<const FancyPtr<const T>>`, and ABI
break can happen when such two types have incompatible layouts.
This is necessary for reducing undefined behavior and `constexpr`
support for `deque` in C++26, and I currently don't want to provide any
way to opt-out of that behavior.
For `iterator`, the current strategy makes it store
`FancyPtr<FancyPtr<T>>`. But it would make more sense to also store
`FancyPtr<const FancyPtr<T>>` because we never modify the map via
`iterator`.
For some pathological combinations of allocators and fancy pointers, the
[3 lines not shown]