[libc] Assert non-nullness in cpp::unique_ptr dereference operators (#235658)
Add LIBC_ASSERTs to operator*, operator-> and (for the array version)
operator[]. Dereferencing an empty unique_ptr is UB, so we might as well
catch it in debug builds.
The death test is a bit awkward because LIBC_ASSERT fails differently
depending on the build mode. In full builds it exits with 0xFF, while in
overlay builds (or with LIBC_COPT_USE_C_ASSERT) it calls the system
assert, which raises SIGABRT. I've added a small helper macro to the
test to handle both cases.
Assisted-by: Gemini
[LSR][NFC] Fold FalseContinues into assert (#235652)
`FalseContinues` may be unused in release build and cause:
```
error: unused variable 'FalseContinues' [-Werror,-Wunused-variable]
```
Follow-up of #225619.
[clang][bytecode] Emit has_lvalue for opaque pointers (#235616)
They always have a base and need the note emitted so
HasConstantInitialization of the variable is false.
libdoom-umapinfo: Update to 2.0.0
2.0.0 2026-10-24 Release
--------------------------
Fixed:
- Correctly map first octet of quoted string to '?' (if it is not a
printable US-ASCII character) for terminal output of command line
utility
Changed:
- Breaking: New major version (not ABI compatible with major version 1)
- Breaking: Change path of header file
- Breaking: Change API namespace prefix
- Breaking: Rename command line utility to "doom-umapinfo2-cli"
- Accept data conforming to UMAPINFO Rev 2.3
Update syntax definition (file "SYNTAX")
- Replace license CC0 1.0 Universal (SPDX ID "CC0-1.0")
with BSD Zero Clause License (SPDX ID "0BSD")
[17 lines not shown]
flnews-snapshot: Update to 1.4.0
1.4.0 2026-10-24 Release
--------------------------
Important notes:
- TLS: Add support for OpenSSL 4 API.
- ENC: Add subproject for Unicode database.
- Replace license CC0 1.0 Universal (SPDX ID "CC0-1.0") with
BSD Zero Clause License (SPDX ID "0BSD") because Fedora project does
not accept CC0 for documentation.
Bug fixes:
- FILTER: Avoid double free in filter rule constructor if regular
expression for string could not be compiled (reported by
Michael Uplawski, patch from Robert Kuhn assisted by Claude AI).
- FILTER: Reset pointer to wildmat pattern linked list for every group.
Formerly a nontrivial wildmat could only match the first group of a
group list.
[8 lines not shown]
[ARM] Optimize code for 0 and int min (#229489)
## Summary
Optimize Thumb-2 code generation for zero tests of values masked by
contiguous low-bit masks. For these tests, shifting the input can
preserve whether the masked value is zero while avoiding a `BIC`.
The four source forms covered by this pattern reduce to one of two
zero-test shapes: an `i32` test or an `i64` test lowered across two
`i32` halves.
## Changes
- Add a helper to recognize eligible single-use ANDs with contiguous low
masks and form an equivalent shifted value for a zero test.
- Apply the transform to Thumb-2 equality and inequality comparisons
against zero, including the OR of halves produced when an `i64`
comparison is lowered.
[24 lines not shown]
[MachineLICM] Don't request BFI analysis if not needed. NFC (#235638)
BFI is only needed in one place, isTgtHotterThanSrc, which is only
called when there's profiling info. Lazily request it to save 0.06%
geomean on stage2-O3:
https://llvm-compile-time-tracker.com/compare.php?from=36c4d811b59c826b416fd66518f406c96829d4be&to=c57789d7ebd8288fe063fd7b33481e88eed80527&stat=instructions:u
I also considered some sort of lambda that's called directly from
isTgtHotterThanSrc, but it turns out that's not NFC as the MachineLICM
can split the preheader before it's called so the BFI analysis returned
is slightly different. Might be worth exploring later.
[RISCV] Lazily request analyses in RISCVGatherScatterLowering and RISCVVLOptimizer. NFC (#235546)
We skip RISCVGatherScatterLowering and RISCVVLOptimizer when there's no
V extension (or fixed length vector support), but after we request any
analyses. So on no-V configurations we'll still end up computing the
analyses. Fetch these lazily so that we don't unnecessarily compute them
in the new PM. The legacy PM will still redundantly compute them.
This also has the benefit that if e.g. there are no gather/scatters in a
function or no instructions with an optimisable VL, we also won't
request the analyses.
[libc] Implement thrd_sleep and thrd_yield in threads (#232919)
Implement the standard C11/C23 thread functions `thrd_sleep` and
`thrd_yield` in `<threads.h>`.
Fixes #232378.
Assisted by Antigravity and reviewed by Aman Maurya.
[AArch64] Support FP atomic stores with memory hints
This patch extends the atomic-store-hint pseudos to accept preserved
floating-point atomic stores. It adds an FPR16 pseudo family and direct
half, bfloat, float, and double patterns for the supported addressing
modes.
The pseudos expand relaxed stores to STR and RCPC3 release and
sequentially consistent stores to STLUR, retaining memory hints without
cross-register-bank copies.
The existing AArch64::ATOMIC_STORE_HINT_H is renamed to
AArch64::ATOMIC_STORE_HINT_HH and AArch64::ATOMIC_STORE_HINT_H now means
FP16 instead of it's old association with integer half-word.
[AArch64] Support direct RCPC3 FP atomic loads and stores
Preserve half, bfloat, float, and double atomic loads and stores
through AtomicExpand for acquire and release orderings, and preserve
sequentially consistent stores, when RCPC3 and NEON are available.
Add SelectionDAG patterns for the RCPC3 LDAPUR and STLUR operations,
including unscaled offsets, and update the existing FP lane patterns to
match the preserved floating-point atomic nodes. Targets without the
required features continue to use integer lowering.
[CIR] Add long_double_size to #cir.lowering_lang_options (#234946)
It represents `LangOpts::LongDoubleSize` which is initialized if
`-mlong-double-*` command line option is present.
Relates to https://github.com/llvm/llvm-project/issues/227917 .
Firewall: Rules - fix decoration magic in searchRuleAction(), partly reverts https://github.com/opnsense/core/commit/c96610594dc770023047441d3657989f6ea9b7ad
Initial the meta fields where added in https://github.com/opnsense/core/pull/9121 because of missing tooltips, but because the $filter_funct_rs method already parsed the data, it was a convenience to place it inside the block (so we only need to loop through the set once).
Given the loop is much cheaper than the filter action added later, we better move this out of there and only return that data to the user for the output he actually receives (after filtering).