[clang][CFG] Fix range-for iterator initialization order (#234467)
The CFG builder adds statements in reverse execution order. Add the
range-for end declaration before the begin declaration so that the
resulting CFG initializes begin before end.
This bug was introduced in **Clang 3.9.0**. Correcting the
initialization order also restores CFGScopeBegin markers for the hidden
range and begin variables. All three hidden variables now have matching
scope-begin and scope-end markers, with scopes ending in reverse order
in the loop’s scope-exit block.
Add a regression covering distinct iterator and sentinel types with
non-trivial destructors, checking initialization and reverse destruction
order with rich constructors both enabled and disabled. Update the
affected CFG dump expectations and lifetime-safety diagnostic
expectations.
Validation: all 28 selected CFG and range-for Analysis tests and all 24
[3 lines not shown]
[CIR][AArch64] Use CIR float types in getSVEType
getSVEType built the bf16 and f32 vectors from mlir::Builder's
getBF16Type() and getF32Type(), which return builtin MLIR types.
!cir.vector only accepts CIR element types, so an assertions build
aborts in VectorType::get and a release build creates an invalid type.
Use getBfloat16Ty() and getSingleTy(), as the f16 and f64 cases do.
No SVE builtin reaches these cases yet, so a lit test can't cover them.
Instead, CIRBaseBuilderTy now deletes mlir::Builder's builtin float
getters, so this mistake fails to compile.
Assisted-by: Claude Code (Claude Opus 5.5)
NAS-144452 / 27.0.0 / Report TrueSearch in usage statistics services (by Qubad786) (#20045)
## Problem
TrueSearch has no "Start Automatically" flag and no row in the services
table, so it never shows up in the `services` list of the usage
statistics and there is no way to tell how many systems use it.
## Solution
Append a `truesearch` entry to `services`, with `enabled` coming from
`truesearch.enabled`, the same check middleware uses to decide whether
to start the daemon (licensed, and SMB Spotlight or WebShare search have
shares to index).
Original PR: https://github.com/truenas/middleware/pull/20043
Co-authored-by: M. Rehan <mrehanlm93 at gmail.com>
[LAA] Keep known dependences on retry with runtime checks (#231454)
Retrying with runtime checks cleared all recorded dependences, including
known dependences whose accesses are not checked against each other.
Interleaved access analysis could then reorder those accesses and hoist
a strided load across a store it depends on.
Drop only unknown dependences, which the runtime checks cover, and keep
known dependences to constrain reordering. This also keeps the ordering
for safe pairs that #232530 stops checking within erased classes.
The new case in `interleaved-accesses-retry-runtime-checks.ll` has an
interleave group that hoists the load of `A[2i]` above the previous
iteration's store to it; the existing case is fixed too. The LAA print
tests now list the kept dependences.
Assisted-by: Claude Code, Codex
Remove implementation details from the NTP server create schema
- Drop the NTPServerCreate docstring
- Give the overridden `address` field its description back; the
generated JSON schema had lost the inherited one
Check chrony server addresses for whitespace in one pass
Use any(c.isspace() ...), which stops at the first whitespace character,
and build the list of servers in the same loop that logs the skipped
ones instead of checking each address twice.
Adapt NTS support to current master
- Migration 04a6293d595a follows bbce11d3cbd7 (S3 bucket layout), the
27.0 head on master and stable/27, instead of 98358f332844. Merge
migration 4ba342aeda4a joins 9a4e61c0f2d7 instead of 93310886a54c.
Both files are dated 2026-10-23 so that they sort after their parents
- Drop reset_systemd_svcs from the NTP integration tests. Master removed
it (NAS-144446): service.control now clears a unit's start limit
before every start and restart
Fix NTP integration test failures
- Clear chronyd's systemd start limit in the NTP test helpers, before
the test and before restoring the original servers. With the two NTS
servers the migration adds there are five stock servers, so removing
them and adding a test server starts chronyd six times within ten
seconds. systemd refuses the sixth start and service.control only logs
it, so chronyd was stopped for the alert and authdata checks
- Expect the client's ValidationErrors from system.security.update. A
job reports its validation errors with the client's exception class,
not the middleware's
Add NTS support for NTP servers
- Add `nts` to system.ntpserver, rendered as chrony's `nts` option
- Without `force`, probe NTS-KE (TLS 1.3, ALPN ntske/1) and the
negotiated NTP server on save
- Cap `maxpoll` at 21 for NTS servers
- Render `authselectmode prefer` in chrony.conf
- Add system.security `require_nts` (default off), rendered as
`authselectmode require`
- With `require_nts`: refuse enabling without an NTS server, saving
servers without NTS and deleting the last NTS server
- Restart chronyd on both controllers when `require_nts` changes
- Migration: add `ntp_nts` and `require_nts`; add time.cloudflare.com
and ntppool1.time.nl (NTS) to stock NTP configs, except AD/IPA members
- Read NTS key state from the chronyd socket (AUTH_DATA,
NTP_SOURCE_NAME); name failing NTS servers in the NTP health alert
- Add NTS-aware advice to directory services clock skew errors
- Use absolute clock offsets in the NTP alert and AD health check
- Reject line breaks and whitespace in ntpserver `address`; skip such
[6 lines not shown]
[CIR] Restrict union tail padding to integers (#233897)
CIRGen pads a union's tail with !u8i or !cir.array<!u8i x N>, but the
verifier accepted any padding type. Other types broke consumers that
size the union: incomplete-record padding asserted in
computeStructSize, and scalable-vector padding made CallConvLowering
emit a byval of meaningless size.
The verifier now requires the padding to be an integer or an array of
integers. This also covers the earlier void-padding check.
Assisted-by: Claude Code (Claude Opus 5.5)
Reland "[mlir] Fix false positive loops in RegionBranchOpInterface::hasLoop"
Relands #233784, reverted in #234573 because it broke two CIR unit
tests.
Those tests expected hasLoop() to be true for cir.await and
cir.coroutine, although neither has a cycle: resume is reachable from
ready both directly and through suspend, and the coroutine reaches exit
and destroy along several paths. That was the false positive this change
fixes. The relanded change updates both expectations to false.
Original description:
`RegionBranchOpInterface::hasLoop` reported a loop whenever its
traversal popped a region it had already visited. The worklist gets one
entry per successor of each terminator, so a region reachable along two
paths was popped twice even without a cycle, for example when two
terminators of a region branch to the same successor region.
[8 lines not shown]
misc/github-copilot-language-server: enable on powerpc64*
Node calls both endians ppc64, so the native modules have to go into
compiled/freebsd/ppc64 for the server to find them.
The node headers come from an official GCC build, so node-gyp adds the
GCC-only -mminimal-toc on ppc64 and clang errors out. Tell gyp they are
clang-built instead.
misc/github-copilot-language-server: enable on powerpc64*
Node calls both endians ppc64, so the native modules have to go into
compiled/freebsd/ppc64 for the server to find them.
The node headers come from an official GCC build, so node-gyp adds the
GCC-only -mminimal-toc on ppc64 and clang errors out. Tell gyp they are
clang-built instead.
editors/openoffice-*: fix the UNO bridge on powerpc64*
call.s came from a glibc build with the stack protector on, so it reads
the canary from glibc's TLS slot. On FreeBSD that slot holds the DTV
pointer, and a bridged call aborts when rtld grows the DTV in the middle
of it, e.g. on the first save from Python. Drop it.
Also return small structs in r3/r4 and float structs in FPRs, as ELFv2
wants. Basic, Python and Java got garbage from methods like
getCellAddress(), and the bridgetest crashed.
editors/openoffice-*: fix the UNO bridge on powerpc64*
call.s came from a glibc build with the stack protector on, so it reads
the canary from glibc's TLS slot. On FreeBSD that slot holds the DTV
pointer, and a bridged call aborts when rtld grows the DTV in the middle
of it, e.g. on the first save from Python. Drop it.
Also return small structs in r3/r4 and float structs in FPRs, as ELFv2
wants. Basic, Python and Java got garbage from methods like
getCellAddress(), and the bridgetest crashed.
sysutils/logstash*: enable on powerpc64*
Logstash is all Java, and JRuby falls back to plain Java where it has no
native helpers, like it already does on aarch64. Just exclude the
x86_64 libfixposix everywhere except amd64, not only on aarch64.