LLVM/project 4417a75clang/lib/AST ExprConstant.cpp, clang/lib/AST/ByteCode Compiler.cpp

[ExprConstant] Treat `&*p` as not a dereference in C constant initializers (#201483)

In C, [C11 6.5.3.2p3] specifies that when the operand of unary `&` is
the result of a unary `*` operator, neither operator is evaluated and
the result is as if both were omitted. So `&*p` yields the pointer value
`p` without performing a dereference, and forming it is well-defined
even when `p` is null (e.g. `&*(int *)0`).

The constant evaluator did not honor this: it evaluated the `*` as a
real lvalue access and diagnosed a null dereference as undefined
behavior. This went unnoticed for ordinary scalar initializers, which
use the relaxed `Expr::isConstantInitializer()` check, but a bit-field
initializer is evaluated via `EvaluateAsInt()` with `SE_NoSideEffects`,
so the same expression was rejected there with "initializer element is
not a compile-time constant":

```
  struct S { long v : 8; };
  const struct S s = { .v = (long)&*(int *)0 };   // error

    [9 lines not shown]
DeltaFile
+17-0clang/test/Sema/static-init.c
+13-0clang/lib/AST/ExprConstant.cpp
+11-0clang/lib/AST/ByteCode/Compiler.cpp
+41-03 files

LLVM/project 3b095d9llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rv32p.ll

[RISCV][P-ext] Select scalar asub/asubu and mulhr/mulhru/mulhrsu on RV32 (#201540)

The truncate combine only formed these nodes for packed vectors; extend
it to scalar i32 on RV32 and add the matching isel patterns.
DeltaFile
+82-0llvm/test/CodeGen/RISCV/rv32p.ll
+15-26llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+7-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+104-263 files

LLVM/project 1e3dc60llvm/docs ProgrammersManual.rst, llvm/include/llvm/ADT DenseMap.h

[DenseMap] Store occupancy in a packed used-bit array (#201281)

Track bucket occupancy in a packed 1-bit-per-bucket "used" array (uint32
words)
instead of an `Empty` sentinel key. The buckets and the used array share
one
allocation. The probing scheme is unchanged.
(uint64_t words lead to slightly larger clang binary.)

Because occupancy is a packed bit instead of an in-band sentinel,
probing and
iteration test a dense bit rather than loading each bucket key. This
helps
find-miss and iteration (the empty terminus and the empty buckets become
a bit
test, not a bucket load; for large keys it also skips the structural
compare
against the empty key) and large-bucket insert. It costs find-hit (the
matched

    [19 lines not shown]
DeltaFile
+360-218llvm/include/llvm/ADT/DenseMap.h
+18-12llvm/unittests/ADT/DenseMapTest.cpp
+6-3llvm/unittests/ADT/BitVectorTest.cpp
+2-2llvm/docs/ProgrammersManual.rst
+386-2354 files

FreeBSD/ports d58da8cmisc/ollama distinfo Makefile, misc/ollama/files freebsd-compatibility.patch update-port.sh

misc/ollama: update 0.30.4 → 0.30.5
DeltaFile
+13-13misc/ollama/distinfo
+0-3misc/ollama/files/freebsd-compatibility.patch
+0-3misc/ollama/files/update-port.sh
+1-1misc/ollama/Makefile
+14-204 files

FreeBSD/ports d26027fmath/py-islpy Makefile

math/py-islpy: Fix build on 16

Reported by:    fallout
DeltaFile
+1-1math/py-islpy/Makefile
+1-11 files

FreeBSD/ports 4427cdbbiology/mothur Makefile

biology/mothur: Fix build on 16

Reported by:    fallout
DeltaFile
+0-6biology/mothur/Makefile
+0-61 files

FreeBSD/ports 39ff7femath/proxsuite Makefile distinfo

math/proxsuite: update 0.7.1 → 0.7.3
DeltaFile
+5-4math/proxsuite/Makefile
+3-3math/proxsuite/distinfo
+8-72 files

FreeBSD/ports acd9682math/py-scikit-umfpack Makefile

math/py-scikit-umfpack: Fix build

Reported by:    fallout
DeltaFile
+1-1math/py-scikit-umfpack/Makefile
+1-11 files

OpenZFS/src 6cc4492.github/workflows/scripts qemu-2-start.sh

CI: Add alternative URLs for CentOS stream

Fallback to trying the "CentOS Strean Composes" repo for the qcow2
images if the regular URLs fail.  The Composes repo contains the daily
autobuilt Stream images.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
Closes #18628
DeltaFile
+22-0.github/workflows/scripts/qemu-2-start.sh
+22-01 files

OpenZFS/src c4d0f3d.github/workflows/scripts qemu-6-tests.sh

CI: Increase default RCU stall timeout on Linux

When CONFIG_RCU_CPU_STALL_TIMEOUT is configured an RCU stall which
exceeds the default timeout will trigger an NMI and panic the VM.
Given the heavily virtualized nature of the CI environment we want
to make sure to only trigger this due to a real deadlock and not
due to over-subscription of the systems resources.  This timeout
normally defaults to 20-30 seconds and this change increases it
to 120 seconds.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18624
DeltaFile
+7-0.github/workflows/scripts/qemu-6-tests.sh
+7-01 files

OpenZFS/src cae1421.github/workflows codeql.yml

CI: Update CodeQL actions to v4

CodeQL Action v3 has been deprecated and will be retired
December 2026.  Update codeql.yml to use CodeQL Action v4
and update the runner to ubuntu-24.04.

Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18629
DeltaFile
+4-4.github/workflows/codeql.yml
+4-41 files

LLVM/project d7a23b7lld/test/wasm export-all.s export-all.ll

[lld][Webassembly] Merge lld/test/wasm/export-all.ll into export-all.s. NFC (#201724)

Part of the effort to convert all our tests to assembly.
DeltaFile
+106-58lld/test/wasm/export-all.s
+0-48lld/test/wasm/export-all.ll
+106-1062 files

LLVM/project fbbf5f0lld/test/wasm many-functions.ll

[lld][WebAssembly] Simplify many-functions.ll test (#201711)

Remove superfluous checks (function bodies, data section, symbol table,
and segment info) from the test.

The primary purpose of this test is to verify that relocations within
the CODE section are handled correctly when linking objects with many
functions (requiring multi-byte LEB128 for function count).

Checking the entire symbol table, segment info, data section, and all
129 function bodies is superfluous and adds unnecessary noise (over 1000
lines of expectations) to the test. These features are covered by other,
more targeted tests. Reducing these checks makes the test much easier to
read and maintain.
DeltaFile
+0-1,080lld/test/wasm/many-functions.ll
+0-1,0801 files

LLVM/project ef574dacompiler-rt CMakeLists.txt, compiler-rt/lib/profile InstrProfilingPlatformROCm.cpp CMakeLists.txt

Reland HIP offload PGO runtime support as a separate opt-in library (#201606)

This mostly relands the compiler-rt part of #177665 (approved and
merged, then reverted in #201416). The first commit restores it as
merged.

It was reverted because of a Windows problem: the ROCm runtime needs the
sanitizer interception library, which is built /MD on Windows, so
putting it in clang_rt.profile forced that library to /MD and broke
users linking it with the static CRT (/MT).

The second commit fixes this by building the ROCm support as a separate,
opt-in library clang_rt.profile_rocm, a /MD superset of
clang_rt.profile. The base library is left unchanged (/MT, no ROCm). The
driver links clang_rt.profile_rocm first, so it resolves all profile
symbols and the base library stays inert.

clang_rt.profile_rocm is off by default. The compiler-side change and
driver wiring are in a separate PR.
DeltaFile
+897-0compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
+59-0compiler-rt/lib/profile/CMakeLists.txt
+30-0compiler-rt/lib/profile/InstrProfilingFile.c
+8-0compiler-rt/CMakeLists.txt
+994-04 files

OpenZFS/src a851ba8.github/workflows codeql.yml

CI: Re-enable CodeQL workflows on push

This workflow was disabled 'on push' recently in commit 1916c2c5
to reduce redundant CI runs.  However, this check is fairly quick
and we want it run regularly against the branches.  Enable it.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18627
DeltaFile
+0-1.github/workflows/codeql.yml
+0-11 files

OpenZFS/src 2076569contrib/debian not-installed, etc Makefile.am

Remove /etc/sudoers.d/zfs

The smartctl exception in /etc/sudoers.d/zfs doesn't cover devices
like NVMe or symlinked devices.  Just get rid of it rather than
keep maintaining it.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
Closes #18626
DeltaFile
+0-9etc/sudoers.d/zfs
+0-6etc/Makefile.am
+1-4man/man8/zpool-iostat.8
+0-1rpm/generic/zfs.spec.in
+0-1contrib/debian/not-installed
+1-215 files

LLVM/project 9c1f9bbclang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering direct-flatten.cir coerce-record-to-record-via-memory.cir

[CIR] Implement Direct+canFlatten in CallConvLowering

CallConvLowering previously ignored the canFlatten flag on Direct
classifications: a Direct arg with a multi-field struct coerced type was
passed as a single struct argument rather than N scalar register arguments.
This is the register-passing pattern the x86-64 SysV ABI uses for structs
like struct { long a, b; }.

A new helper getFlattenedCoercedType centralizes the detection (Direct,
multi-field struct coercedType, canFlatten set).  The three lowering sites
are updated: buildNewArgTypes pushes one wire type per field; insertArgCoercion
reassembles the coerced struct from N scalar block args then coerces to the
original type if the two differ; rewriteCallSite extracts each field via
cir.extract_member.  The existing coerce-record-to-record-via-memory.cir
test gains can_flatten = false to opt into the single-arg path.
DeltaFile
+190-0clang/test/CIR/Transforms/abi-lowering/direct-flatten.cir
+134-16clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+1-1clang/test/CIR/Transforms/abi-lowering/coerce-record-to-record-via-memory.cir
+325-173 files

LLVM/project a9b81adclang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering indirect-byval.cir

[CIR] Lower byval/byref args in CallConvLowering

ArgKind::Indirect arguments were hitting an errorNYI in
CIRABIRewriteContext.  Add the lowering: in the callee the block argument
type changes to !cir.ptr<T>, a load is inserted at entry so the body sees
the original value type, and llvm.byval or llvm.byref is attached based on
ownership.  At call sites, both byval and byref are lowered by allocating a
stack slot, copying the value in, and passing the pointer.

For byval, llvm.noalias and llvm.noundef are also added — llvm.noalias
because the call-site rewrite always produces a fresh alloca+store
(equivalent to -fpass-by-value-is-noalias), and llvm.noundef because the
copy is always fully defined.  byref carries only llvm.byref and llvm.align
since it does not assert exclusive ownership.
DeltaFile
+242-0clang/test/CIR/Transforms/abi-lowering/indirect-byval.cir
+135-55clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+377-552 files

LLVM/project e58deb0clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp CIRABIRewriteContext.h, clang/test/CIR/Transforms/abi-lowering indirect-return-sret.cir

[CIR] Lower sret returns in CallConvLowering

Functions that return an aggregate by value classify their return as
ArgKind::Indirect, but CallConvLowering reached an errorNYI for that
case, so the whole CallConv pass refused to lower any struct-returning
function.

rewriteFunctionDefinition now recognizes an Indirect return: the wire
return type becomes void, a hidden sret pointer is prepended as block
argument 0, and every cir.return is routed through that pointer.  Rather
than storing the loaded return value through the sret pointer (a
byte-copy that breaks non-trivially-copyable types -- libstdc++'s SSO
std::string keeps a _M_p pointer into its own _M_local_buf, so a
byte-copy leaves the destination aliasing the source's dying stack
storage), insertSRetStores rewires the __retval alloca to the sret
pointer so construction flows directly into the caller's slot, matching
classic CodeGen's "construct into %agg.result" pattern.  CIRGen emits one
cir.load __retval / cir.return pair per return statement, all reading the
single __retval alloca, so the alloca is rewired once and every return is

    [18 lines not shown]
DeltaFile
+259-26clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+200-0clang/test/CIR/Transforms/abi-lowering/indirect-return-sret.cir
+3-4clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.h
+462-303 files

LLVM/project 2422988clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp CIRABIRewriteContext.h, clang/test/CIR/Transforms/abi-lowering expand-struct-arg.cir

[CIR] Implement ArgKind::Expand in CallConvLowering

ArgKind::Expand classifies a struct argument for flattening: each field
becomes a separate scalar argument at the ABI level.  Classic CodeGen
calls this "struct expansion" — used on targets like MIPS and some ARM
calling conventions.

CIRABIRewriteContext previously emitted errorNYI at both classification
sites.  The replacement covers three call paths.  In buildNewArgTypes,
the original struct type is replaced by one wire type per field.  In
insertArgCoercion, the single struct block argument is replaced by N
scalar block arguments and an alloca+get_member+store+load sequence at
the entry block reassembles them for body uses; a running block-argument
index (rather than classIdx + sretOffset) correctly tracks the expanded
slot count when multiple Expand args or sret+Expand combinations appear.
The Ignore-drop loop gains a classToBlockArg pre-computation so that
Ignore args following Expand args are erased at the correct index.  In
rewriteCallSite, cir.extract_member decomposes the struct operand into
its constituent fields, which become separate call arguments.

    [3 lines not shown]
DeltaFile
+174-62clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+224-0clang/test/CIR/Transforms/abi-lowering/expand-struct-arg.cir
+2-2clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.h
+400-643 files

FreeNAS/freenas 234e42fsrc/middlewared/middlewared/plugins rsync.py, src/middlewared/middlewared/plugins/rsync_ utils.py __init__.py

Remove old rsync code
DeltaFile
+0-654src/middlewared/middlewared/plugins/rsync.py
+0-9src/middlewared/middlewared/plugins/rsync_/utils.py
+0-0src/middlewared/middlewared/plugins/rsync_/__init__.py
+0-6633 files

FreeNAS/freenas e4cc003.github/workflows mypy.yml

Update mypy action
DeltaFile
+1-0.github/workflows/mypy.yml
+1-01 files

FreeNAS/freenas c5de194src/middlewared/middlewared/plugins/rsync validate.py task.py

Make rsync plugin typesafe
DeltaFile
+303-0src/middlewared/middlewared/plugins/rsync/validate.py
+201-0src/middlewared/middlewared/plugins/rsync/task.py
+107-0src/middlewared/middlewared/plugins/rsync/crud.py
+92-0src/middlewared/middlewared/plugins/rsync/__init__.py
+15-0src/middlewared/middlewared/plugins/rsync/utils.py
+718-05 files

FreeNAS/freenas 0a484ddsrc/middlewared/middlewared/api/v27_0_0 rsync_task.py, src/middlewared/middlewared/common/attachment __init__.py

Update rsync plugin usages
DeltaFile
+28-25src/middlewared/middlewared/common/attachment/__init__.py
+22-26src/middlewared/middlewared/service/generic_sharing_service.py
+19-21src/middlewared/middlewared/service/sharing_task_service_part.py
+13-5src/middlewared/middlewared/api/v27_0_0/rsync_task.py
+11-3src/middlewared/middlewared/utils/service/task_state.py
+5-5src/middlewared/middlewared/etc_files/cron.d/middlewared.mako
+98-854 files not shown
+114-9210 files

FreeNAS/freenas e0decb7src/middlewared/middlewared/common/attachment __init__.py, src/middlewared/middlewared/service generic_sharing_service.py sharing_task_service_part.py

Initial pass at making sharing task service typesafe
DeltaFile
+164-0src/middlewared/middlewared/service/generic_sharing_service.py
+140-0src/middlewared/middlewared/service/sharing_task_service_part.py
+23-9src/middlewared/middlewared/common/attachment/__init__.py
+9-2src/middlewared/middlewared/service/__init__.py
+3-0src/middlewared/middlewared/service/base.py
+3-0src/middlewared/middlewared/service/crud_service.py
+342-112 files not shown
+347-118 files

FreeBSD/ports 8ecbf82math/octave-forge Makefile

math/octave-forge: Add new optional dependency.

- New optional dependency math/octave-forge-dsppack.
- Update to 20260604.
DeltaFile
+3-2math/octave-forge/Makefile
+3-21 files

FreeBSD/ports 3d39dc9math Makefile, math/octave-forge-dsppack Makefile pkg-descr

math/octave-forge-dsppack: New port.

GUI tool for designing and analysing IIR/FIR digital filters:
magnitude, phase and pole-zero responses, stability analysis, audio
demo, and code export.
DeltaFile
+24-0math/octave-forge-dsppack/Makefile
+9-0math/octave-forge-dsppack/pkg-descr
+3-0math/octave-forge-dsppack/distinfo
+1-0math/Makefile
+37-04 files

LLVM/project 60bd8f8clang/lib/StaticAnalyzer/Checkers/WebKit MemoryUnsafeCastChecker.cpp, clang/test/Analysis/Checkers/WebKit memory-unsafe-cast.mm

[Webkit Checkers][SaferCpp] Detect base-to-derived downcasts laundered through void* in MemoryUnsafeCastChecker (#200294)

Adds a matcher for static_cast<Derived*>(static_cast<void*>(base)),
which previously evaded detection because the outer cast's immediate
source expression is void*, not Base*.

rdar://173770143

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
DeltaFile
+42-7clang/test/Analysis/Checkers/WebKit/memory-unsafe-cast.mm
+32-3clang/lib/StaticAnalyzer/Checkers/WebKit/MemoryUnsafeCastChecker.cpp
+74-102 files

LLVM/project bb180ddclang/lib/CodeGen/Targets WebAssembly.cpp, clang/test/CodeGen/WebAssembly wasm-arguments.c

[WebAssembly] Fix crash combining complex numbers and multivalue (#200514)

This fixes a crash in Clang when the `experimental-mv` ABI is used on
WebAssembly targets in conjunction with complex numbers as arguments.
There's no strict definition for what the multivalue ABI is at this
time, so the main goal is to just not crash for now.

Closes #70402
Closes #153567
DeltaFile
+12-8clang/lib/CodeGen/Targets/WebAssembly.cpp
+10-0clang/test/CodeGen/WebAssembly/wasm-arguments.c
+22-82 files

OpenBSD/ports xFciUQCdevel/intellij distinfo Makefile

   devel/intellij: update to 2026.1.3
VersionDeltaFile
1.85+2-2devel/intellij/distinfo
1.119+2-2devel/intellij/Makefile
+4-42 files