libc: Fix assert() sanitiser for C++ contextual bool conversion
Replace the `(bool(*)(bool))` probe in `__assert_sanitize()` with an unevaluated
conditional expression, so types with `explicit operator bool()` that require a
contextually converted constant expression of type `bool` are handled correctly.
Ergo, arity check is now performed separately via `__assert_sanitize_arity()`, a
unary template whose parameter pack must bind to exactly on argument after
`__VA_ARGS__` is substituted into the call.
Also align NDEBUG with C23 requirements.
Reported by: dim, aokblast
Signed-off-by: Faraz Vahedi <kfv at kfv.io>
Reviewed by: aokblast, fuz
MFC after: 1 week
Fixes: 867b51452ea78ece0b312a387e63fdbc2a11056a
Pull Request: https://github.com/freebsd/freebsd-src/pull/2265
(cherry picked from commit 48d20fd1cf90179e778c6155900cbed2be140273)
[clang][analyzer] Add allocation failure modeling to DynamicMemoryModeling (#205371)
New option is added to the checker to create branches with null return
value from memory allocations (off by default).
[Windows][Arm64EC] Enable thunk generation for bfloat16 (#206710)
This patch enables thunk generation for functions that take and return
bfloat16 types. These types live in the same registers as fp16 types in
both Arm64 and x86 so we just need the same behaviour as for fp16.
Assisted-by: codex (gpt-5.5)
Co-authored-by: nick.dingle at arm.com
Revert "[libc++] Move threading and random device config into <__configuration/platform.h>" (#207134)
There were CI failures that I missed when merging.
Reverts llvm/llvm-project#206262
[clang] Handle constructor closures with consteval default args (#203554)
Fixes https://github.com/llvm/llvm-project/issues/201320
Just grabbing the default argument with `getDefaultArg()` during codegen
doesn't work if the expression requires evaluating a consteval
expression (see bug). Instead, we must properly BuildCXXDefaultArgExpr
it during Sema, store it in the AST (including
serialization/deserialization) and then use that during codegen.
[clang][serialization] Fix crash on imported pack indexing type (#205965)
The selected index of a PackIndexingType was not serialized, so on
deserialization its canonical type was rebuilt as a dependent type,
crashing CodeGen.
Difference in `Ty` during `CodeGenTypes::ConvertType`
(https://github.com/llvm/llvm-project/blob/49cf5a7ba0ab76a1f700ce6407cea1713741bc01/clang/lib/CodeGen/CodeGenTypes.cpp#L415-L424)
### Before
```cpp
PackIndexingType 0x142914680 'int' sugar
|-SubstTemplateTypeParmPackType 0x1429145a0 'Ts' dependent contains_unexpanded_pack imported typename depth 0 index 0 ... Ts
| |-TypeAliasTemplate 0x142914318 'element'
| `-TemplateArgument pack '<int>'
| `-TemplateArgument type 'int'
| `-BuiltinType 0x14401cf10 'int'
|-ConstantExpr 0x142914630 '__size_t':'unsigned long'
| |-value: Int 0
[19 lines not shown]
[lldb] Use std::map in MemoryRegionInfoCache (#206986)
The RangeVector abstraction is slow w.r.t. amount of sorting it
requires, and it is particularly bad when sorting a MemoryRegionInfo, as
this object is expensive to move. All of this is aggravated in sanitizer
bots, where a handful of tests started timing out as a result of the
MemoryRegionInfoCache.
This commit fixes the situation by simplifying the code: just use a
std::map. Based on current usage, behaviour should be identical to
before. In particular, neither case addresses cases like this:
1. Insert range [100, 200]
2. Insert range [150, 160]
3. Query address 170.
In both cases we fail to find a cached range and proceed to query the
inferior again. Which is not incorrect, jut doesn't maximize the cache
usage.
[3 lines not shown]
py-tox: updated to 4.56.1
Bug fixes - 4.56.1
Fix { replace = "if" ... extend = true } corrupting the resulting list when then or else is a scalar string (e.g. then = "-v"): a non-empty scalar string is now appended as a single element instead of being iterated character-by-character, while a false if with no else (yielding "") contributes nothing rather than an empty element, and list/set results are still spread into the parent.
py-virtualenv: updated to 21.5.1
Bugfixes - 21.5.1
Refuse to create environments whose Python the bundled wheels no longer cover (currently below 3.9). virtualenv used to substitute the newest bundled pip, which cannot run on such a target, leaving a broken environment; seeder selection now rejects it up front with a clear error. --no-seed and third-party seeders that ship compatible wheels still work.
Features - 21.5.0
Drop support for Python 3.8; virtualenv now requires Python 3.9 or later to run and to create environments. Remove the embedded wheel seed package, which virtualenv bundled only for Python 3.8. The --wheel and --no-wheel options stay as no-ops, but now warn that virtualenv will remove them in a release after 2026-12
Bugfixes - 21.5.0
Upgrade embedded wheels.
Firewall: fix some small issues in menu registration, taking under account the situations where legacy removed the items leading to config.xml like:
<filter>
<rule/>
</filter>
And mvc Filter->rules always being there (the container vs the entries)
[RFC][AMDGPU][lld] Add object linking support
Add AMDGPU ELF object-linking support in lld, including resource propagation,
LDS layout, indirect-call handling, named-barrier updates, target compatibility
checks, and kernel descriptor/metadata patching.
This is a large PR because the linker needs to understand and validate several
AMDGPU object-linking concepts end to end. I tried to keep the changes scoped to
the necessary linker support and related metadata plumbing, but I'm open to
suggestions on how to split or structure the review to make it easier.