[AArch64] Fix zero-call-used-regs crash on targets without NEON (#211603)
## Summary
`-fzero-call-used-regs=all` crashes on AArch64 targets without NEON
support, such as `-mgeneral-regs-only` or `-march=armv8-a+nosimd`. The
former is a common configuration used by the Linux kernel.
```c
int p(int a) { return a + 1; }
```
```sh
$ clang --target=aarch64-linux-gnu -O2 -S -mgeneral-regs-only \
-fzero-call-used-regs=all test.c -o -
Assertion failed: (STI.hasNEON() && "Expected to have NEON."),
buildClearRegister
```
[17 lines not shown]
[Clang][Sema] Synthesize a memcpy body for defaulted union assignment (#206579)
A defaulted copy or move assignment operator for a union is synthesized
with an empty body. `DefineImplicitCopyAssignment` /
`DefineImplicitMoveAssignment` skip union members in the memberwise
loop, and the implied copy of the object representation has no AST
representation, a FIXME that has sat at that skip for a long time. The
operator ends up copying nothing.
Classic CodeGen hides this at ordinary call sites by lowering a trivial
assignment to a memcpy at the call site, so `u1 = u2` works even though
the operator body is a no-op. But when the operator is genuinely called,
through a pointer-to-member for instance, it silently copies nothing.
ClangIR calls the assignment operator at the call site rather than
eliding it, so it hits the empty body directly and drops every union
assignment. The no-op is then deleted at `-O3`. That is the MultiSource
`kc` miscompile, where a `YYSTYPE` union assignment (`*++yyvsp =
yylval`) becomes a no-op.
[37 lines not shown]
[libc][__support] Implement exact linear binning for TLSFFreeStoreImpl
Previously, size_to_bit_index used size >> UNIT_SIZE_LOG2 for linear bins,
which mapped size 24 to bin 1 and size 17 to bin 1, causing a mismatch
between allocation request sizes and physical block bucket sizes.
This change introduces exact mapping for linear bins:
- Introduces LINEAR_BINS to compute the exact number of linear bins needed
to reach the exponential table boundary (29 on MSVC Windows where UNIT_SIZE is 8,
31 on Linux where UNIT_SIZE is 16).
- Sizes <= MIN_INNER_SIZE map to bin 0.
- Larger linear sizes map to ((size - MIN_INNER_SIZE - 1) >> UNIT_SIZE_LOG2) + 1.
- Uses LINEAR_BINS as the base index for exponential bins in size_to_bit_index,
index_to_min_size, and find_and_remove_fit, ensuring strict monotonicity
across all indices without runtime clamping.
- Adds NegativeTestForFullHeap unit test in freelist_heap_test.cpp and updates
freestore_test.cpp.
TAG=agy
CONV=cff84e8c-ee22-4f39-af3c-344d1e6f417b
devel/py-python-jsonrpc-server: Remove expired port
2026-07-31 devel/py-python-jsonrpc-server: There is no new version in 6 years, the upstream build and CI are failing and nothing depends on this port, hence the removal
databases/cassandra3: Remove expired port
2026-07-31 databases/cassandra3: Cassandra 3.x is no longer maintained upstream, superseded by databases/cassandra4
www/py-django-configurations: Remove expired port
2026-07-31 www/py-django-configurations: Upstream no longer active, project is abandoned, please use www/py-django-configurator instead
[libc][__support] Clean up index_to_min_size clamping by introducing LINEAR_BINS
Instead of forcing EXP_BASE (32) linear bins and clamping min_size with cpp::min,
this change introduces LINEAR_BINS to calculate the exact number of linear bins
needed to reach the exponential table boundary (29 on MSVC Windows where UNIT_SIZE is 8,
31 on Linux where UNIT_SIZE is 16).
Using LINEAR_BINS as the transition threshold in size_to_bit_index, index_to_min_size,
and find_and_remove_fit eliminates all runtime clamping, padding bins, and overshooting
while preserving strict monotonicity across all indices.
TAG=agy
CONV=cff84e8c-ee22-4f39-af3c-344d1e6f417b
net-mgmt/py-pyIOSXR: Remove expired port
2026-07-31 net-mgmt/py-pyIOSXR: Upstream inactive since +8 years, code was integrated into py-napalm. Please use net-mgmt/py-napalm instead