Since one interface can have multiple subnets in IPv6 its better to group them via interface. It also helps with dynamic pools since in the same interface you could have a static ULA pool as well.
[libc++] LWG4266: `layout_stride::mapping` should treat empty mappings as exhaustive (#191629)
Fixes: #171325
---------
Co-authored-by: S. B. Tam <cpplearner at outlook.com>
ui: clean up useRequestHandlerOnGet usage
This has no use anymore with the current bootgrid code. If a
handler should be overridden, simply defining the function is enough
[libc++][mdspan] Refactor bounds checking in `std::extents` (#197001)
Perform bounds checking and casting to `index_type` together, which is
necessary for checking move-only index arguments.
See also: https://github.com/llvm/llvm-project/pull/196574
---------
Co-authored-by: A. Jiang <de34 at live.cn>
[ConstantRange] Optimize multiply with nowrap (#197481)
multiplyWithNoWrap() may currently call all of multiply(), umul_sat()
and smul_sat(), where the former may perform up to 6 double-width
multiplies, and the other two perform 2 and 4 single-width multiplies
respectively.
Optimize this a bit by moving the nowrap handling directly into
multiply(): If we're already doing double-width multiplies, then doing
more on top of that is unnecessary.
Additionally, this also allows us to use only single-width multiplies
for the nuw case. (This is also possible for the nsw case, but the
implementation would be more involved.)
[TableGen] Fix assertion when initializing a bit from !cond or !foldl (#197224)
TableGen hit an assertion when trying to initialize a bit in a bits
field from an unfolded !cond expression like this:
let word{0} = !cond(val : flag);
Fixed by changing CondOpInit::getBits to check for the case that it
already has a bit type, matching the pattern used in OpInit::getBit and
elsewhere.
Fixes #197217
[lldb] Use Expected in BreakpointLocationPredictor (#197730)
This makes it easier to not have long-lived Status objects. Forgetting
to clear those was a problem I ran into in #196891.
[libc] Add some checks to the mmap wrapper (#197694)
- check that the discarded offset bits (both high and low) are zero
(page alignment is checked in the kernel, but this cannot be done values
we discard for mmap2, nor for truncated values on 32-bit systems)
- check for negative offsets (the kernel interface uses unsigned values,
but our off_t is signed)
One thing I'm not checking, but other implementations do, is the size of
the allocation (after page alignment) fits into a ptrdiff_t. I didn't do
that now as it requires figuring how to get (and whether to cache) the
page size. This is mainly relevant for 32-bit systems as no 64-bit
system will let you allocate 2^63 bytes of (virtual) memory.
bootgrid: replace 'append' with 'replace' for ajax: false grids
Noticed while documenting.
replaceData() is a lot more performant through Tabulator, and since
there are only 3 callers and all of them expect a clear before
updating any data, use a replace instead.
In time these pages should use the default search endpoint anyway,
but this requires an API change.
make sure to keep the append() function for compatibility
[ORC] Simplify DylibManager::lookupSymbols, remove LookupRequest. (#197626)
DylibManager::lookupSymbols used to take an array of LookupRequests,
where each request specified a handle and list of symbols to lookup
within that handle.
This commit replaces the array of lookup requests with a single handle
and list of symbols passed directly to lookupSymbols.
In practice all clients were passing a singlton array anyway, and
simplifying this signature significantly simplifies implementations.