[CIR] Run callconv lowering in the tests that opted out of it (#216396)
48 CIR tests carried `-fno-clangir-call-conv-lowering` with a TODO to
drop it once the pass handled vector types, the long double wrapper,
f16, and f128. The classifier takes all of those now, so the opt-out and
its TODO go and the tests exercise the pass.
No CHECK line moves, so the IR these tests already pinned is what the
pass produces.
Assisted-by: Cursor / claude-opus-5
[SelectionDAG] SimplifySetCC - Improve shifted range checks with add offsets (#207955)
SelectionDAG currently shrinks large unsigned compare immediates by
shifting the compare operand as a whole. For top-bit range checks that
have been canonicalized to `icmp ult (add x, C), Width`, this can
preserve the pre-shift add and lead to extra masks, zero-extends, or
large immediates.
When the add offset and range width are aligned to the selected shift
and the original unsigned range does not wrap, move the offset after the
shift instead. This lets cases such as checking whether `x >> 48` is in
`[10, 20)` lower to shift/add/cmp.
Fixes #172674
iflib: Add registration failure injection points
Add six device-scoped fail(9) points at the registration milestones
needed to exercise each unwind path. An exact, runtime-only device
selector prevents unrelated iflib devices from consuming an armed point.
Mark the points non-sleepable because registration holds the ifnet and
context locks. Document one-shot operation and bus-address reprobe so a
failed attach can be recovered without another kernel build.
Reviewed by: gallatin
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D58722
rctl(4): document the sysctl tree
Do not duplicate the documentation already available
through "sysctl -d", but tell the user where to find it.
PR: 257984
Suggested by: Felix Johnson <felix.the.red at gmail.com>
iflib: Complete registration failure cleanup
Pre-attach sysctls contain pointers into the iflib context. Any later
registration failure that frees the context must first remove that
sysctl tree.
Failures after a successful IFDI_ATTACH_PRE also did not consistently
call IFDI_DETACH or free the private taskqueue. In particular, routing
a taskqueue creation failure through the context cleanup could free the
driver softc while resources allocated by attach_pre remained live.
Track successful interrupt and queue setup and use one common unwind
path. Invoke IFDI_DETACH with IFNET_WLOCK dropped and release only
resources whose setup completed. Leave a failed IFDI_ATTACH_PRE to
unwind its own partial state, as required by the existing driver
contract.
A failed post-attach can follow driver registration of an SR-IOV
schema. Remove that registration before detaching the interface and
[29 lines not shown]
[SLP]Recalculate copyable-element deps after tree reordering
Reordering permutes the operand columns of the entries and may move an
operand between copyable-covered and plain edges, making the computed
dependency counts stale and tripping the unscheduled-deps assertion.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/216410
pci: Do not reconcile MPS across PCI domains
A PCI function can provide a host bridge into a synthetic PCI domain.
Intel VMD does this: the host facing VMD function remains in its
original domain while the hidden Root Ports and endpoints appear in a
separate domain. The VMD function's Device Control does not describe
an upstream link in that synthetic hierarchy.
The hierarchy wide cold pass incorrectly used the VMD function's MPS
to reprogram the hidden ports and their endpoints. Stop both cold
reconciliation and runtime path walks at a PCI domain boundary. The
real Root Ports within the VMD domain continue to reconcile their
endpoints normally.
Reviewed by: imp
Tested by: Michael Butler <imb at protected-networks.net>
Fixes: 8e9fe9996a1f ("pci: Reconcile MPS before attaching PCIe devices")
MFC after: 6 days
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D58837
[CIR] Test bit-field access units split by register size
A span of bit-fields wider than one register splits into two access units, each
marked on its own. Nothing covered that path: every bit-field in these tests is
24 bits or narrower, and the splits already covered come from a zero-length
bit-field instead.
Two of the three cases are worth having for a reason beyond coverage. When a
record carries both a data unit and an empty one it is not ABI-empty either way,
so the differential assert cannot see a wrong mark on an individual unit, and
these checks are the only thing that can.
Assisted-by: Cursor / claude-opus-5
pkg-vulnerabilities: CVE-2025-69720 was fixed in ncurses-6.6
According upstream NEWS it was fixed in 20251213 and 6.6 was released
on 20251230.
Reported via PR pkg/60589 from Showta Ishizaki, thanks!
vnode(9): Split a wall of prose into an itemized description list.
Prompted by puzzling over the obtuse API contract around v_writecount
and VOP_OPEN/CLOSE for:
PR kern/60586: panic after hot-plugging raidframe component
[clang][WebAssembly] Remove `OPT_no_pthread` handling (#216378)
`-no-pthread` was originally added to Clang in 425b1a5106def (D11087)
simply to prevent "unknown argument" errors when building winpthreads in
mingw-w64.
It was subsequently used in `WebAssembly.cpp` when thread options were
made consistent in 9d5a089bf544e (D57874) via `Args.hasFlag`.
No other Clang toolchains handle `OPT_no_pthread` (they all use
`Args.hasArg(options::OPT_pthread)`), and `-pthread` is not typically
treated as a negatable boolean option in GCC/Clang drivers.
Align WebAssembly with all other Clang toolchains by removing the
`OPT_no_pthread` check.
NAS-142185 / 27.0.0-BETA.1 / Fix stale literalinclude path in docs/database/sqlalchemy.rst (#19505)
A prior commit (PR #18854) split plugins/api_key.py into a package
(api_key/{__init__,crud,internal}.py), moving APIKeyModel into crud.py.
The docs literalinclude still pointed at the old single-file path, which
no longer exists, breaking `make html` (SPHINXOPTS=-W treats the
resulting warning as fatal).
ca-certificates: Update to 20260601
ca-certificates (20260601) unstable; urgency=medium
* Remove ca-certificates-local example (closes: #988912, #1127101).
* Update Mozilla certificate authority bundle to version 2.86
The following certificate authority was added (+):
+ e-Szigno TLS Root CA 2023
The following certificate authorities were removed (-):
- QuoVadis Root CA 2
- QuoVadis Root CA 3
- DigiCert Assured ID Root CA
- DigiCert Global Root CA
- DigiCert High Assurance EV Root CA
- SwissSign Gold CA - G2
- SecureTrust CA
- Secure Global CA
- COMODO Certification Authority
- Certigna
[18 lines not shown]
pthread_create(3): fix dead references to racct(2)
As far as I can tell, racct(2) has never existed, not even when
I added these references a decade ago.
Change them as commit e9e615c88a74 did in thr_new(2).
Reported by: Karlo Miličević <karlo98.m at gmail.com>
[analyzer] Only underline the exact parameter that is bound to the return value in UseAfterLifetimeEnd (#215651)
Currently the `UseAfterLifetimeEnd` checker highlights always the first
argument that is annotated with the `[[clang::lifetimebound]]`
annotation. Like:
```text
temp.cpp:5:31: note: Value's lifetime bound to the lifetime of 'y' here
4 | int x = 1, y = 2;
| ~~~~~~~~~~~~~~~~
5 | return multi_param_test_ref(x, y);
| ^
```
As seen even when checker correctly notes that the value's lifetime is
bound to the lifetime of the `y` parameter, it incorrectly highlights x
since that is the first annotated parameter. In order to fix this I have
added a logic which checks which annotated parameter's region is bound
to the return's region and do the highlight based on that.
[16 lines not shown]
[HLSL][longvec][Tablegen] Use templates to define Vector api's larger than 4 (#216143)
resolves #216139
resolves #216140
This change adds a templatized vector emitter to TableGen's HLSLEmitter.
We add tests for the tablegen and confirm we did it right by
implementing the abs api.
Assisted by GPT-5.6 sol via co-pilot
[CIR] Address more reviewer feedback
Remove droppedFieldHoldingData. The differential asserts allow for an error
having already been reported instead, which covers any NYI in record lowering
rather than just the one.
Mark a bit-field access unit by promoting its storage member when a named
occupant is emitted, rather than pre-scanning the unit first. Both bit-field
paths now do it the same way, and the unit's fields are walked once.
Rename runStorageIdx to storageIdx.
Assisted-by: Cursor / claude-opus-5