LLVM/project 8f378eaclang-tools-extra/clang-tidy/bugprone UnsafeToAllowExceptionsCheck.cpp UnsafeToAllowExceptionsCheck.h, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Add check 'bugprone-unsafe-to-allow-exceptions' (#176430)

`ExceptionEscapeCheck` does not warn if a function is `noexcept(false)`
(may throw) but is one of the functions where throwing exceptions is
unsafe. This check can be used to find such cases.
DeltaFile
+61-0clang-tools-extra/clang-tidy/bugprone/UnsafeToAllowExceptionsCheck.cpp
+54-0clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-to-allow-exceptions.cpp
+49-0clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-to-allow-exceptions-precpp17.cpp
+41-0clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-to-allow-exceptions.rst
+37-0clang-tools-extra/clang-tidy/bugprone/UnsafeToAllowExceptionsCheck.h
+6-0clang-tools-extra/docs/ReleaseNotes.rst
+248-04 files not shown
+257-110 files

LLVM/project d0ce5d6mlir/test/IR visitors.mlir

[NFC][test-ir-visitors] Remove unregistered dialect uses from tests (#181911)

Use the already registered test dialect in tests which is explicitly
intended to allow arbitrary ops.
DeltaFile
+118-118mlir/test/IR/visitors.mlir
+118-1181 files

LLVM/project fddef77libclc/clc/lib/r600/math clc_sw_fma.cl, libclc/opencl/lib/r600/image get_image_attributes_impl.ll write_image_impl.ll

libclc: Remove r600 support

I believe this is dead since clover was removed from mesa.
Creating all of the targets as aliases was also busted, but may
not have mattered due to how incomplete the backend is.
DeltaFile
+0-174libclc/clc/lib/r600/math/clc_sw_fma.cl
+0-95libclc/opencl/lib/r600/image/get_image_attributes_impl.ll
+0-60libclc/opencl/lib/r600/image/write_image_impl.ll
+0-54libclc/opencl/lib/r600/image/read_image_impl.ll
+0-31libclc/opencl/lib/r600/image/read_imageui.cl
+0-31libclc/opencl/lib/r600/image/read_imagei.cl
+0-44527 files not shown
+3-91133 files

LLVM/project 6e3e23elibclc/opencl/lib/amdgcn/workitem get_local_size.cl get_num_groups.cl

libclc: Stop using r600 asm intrinsic declarations for amdgcn

Really the workitem functions should all be moved to generic code
and use gpuintrin.h. These implementations were copied from there.
DeltaFile
+3-7libclc/opencl/lib/amdgcn/workitem/get_local_size.cl
+3-7libclc/opencl/lib/amdgcn/workitem/get_num_groups.cl
+6-142 files

LLVM/project 45b49d4clang/lib/CodeGen/TargetBuiltins ARM.cpp, clang/lib/Sema SemaARM.cpp

[clang][ARM] Refactor argument handling in `EmitAArch64BuiltinExpr` (2/2) (NFC)

Refactor `EmitAArch64BuiltinExpr` so that all AArch64/NEON builtins
handled by this hook _and marked as overloaded_ share a common path
for generating LLVM IR arguments (collected into the `Ops`
`SmallVector<Value*>`) (*). This is a follow-up for #181794 - please
refer to that PR for more context.

As in the previous PR, the key change is implemented in
`HasExtraNeonArgument` , i.e. in the hook that identifies Builtins with
the extra argument. In this PR, I am replacing the ad-hoc switch
statement with a more principled approach borrowed from SemaARM.cpp,
namely:
```cpp
uint64_t mask = 0;
  switch (BuiltinID) {
  #define GET_NEON_OVERLOAD_CHECK
  #include "clang/Basic/arm_fp16.inc"
  #include "clang/Basic/arm_neon.inc"

    [28 lines not shown]
DeltaFile
+48-254clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+3-1clang/lib/Sema/SemaARM.cpp
+51-2552 files

OpenBSD/ports 2czlfSQnet/zabbix Makefile, net/zabbix/patches patch-include_zbx_dbversion_constants_h

   support up to timescaledb 2.25.1; from Mark Patruck
VersionDeltaFile
1.14+4-4net/zabbix/patches/patch-include_zbx_dbversion_constants_h
1.237+2-0net/zabbix/Makefile
+6-42 files

OPNSense/core 39dc18dsrc/etc/inc/plugins.inc.d core.inc

interfaces: protect device reads against forcing empty "arrays" into $config
DeltaFile
+7-7src/etc/inc/plugins.inc.d/core.inc
+7-71 files

LLVM/project 867272dllvm/test/Transforms/LoopVectorize/AArch64 scalable-strict-fadd.ll sve-interleaved-masked-accesses.ll

[LV] Pass symbolic VF to CalculateTripCountMinusVF and CanonicalIVIncrementForPart (NFC) (#180542)

This makes it easier to update the runtime VF per VPlan.
DeltaFile
+198-248llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
+88-96llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-masked-accesses.ll
+52-68llvm/test/Transforms/LoopVectorize/AArch64/uniform-args-call-variants.ll
+30-50llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
+22-50llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-unroll.ll
+10-28llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll
+400-54019 files not shown
+488-68925 files

LLVM/project 7b3e967libclc/clc/lib/generic/relational clc_issubnormal.cl

Add include
DeltaFile
+1-0libclc/clc/lib/generic/relational/clc_issubnormal.cl
+1-01 files

NetBSD/pkgsrc VVz0LvPmath/R Makefile

   R: fix extraction as root
VersionDeltaFile
1.279+5-1math/R/Makefile
+5-11 files

OPNSense/core 0e7e4a5src/etc/inc system.inc, src/etc/inc/plugins.inc.d webgui.inc

backend: shift the ca/cert/crl code to the newer config_read/write_array
DeltaFile
+6-9src/www/interfaces.php
+1-4src/etc/inc/plugins.inc.d/webgui.inc
+2-2src/etc/inc/system.inc
+1-1src/www/system_advanced_admin.php
+0-2src/www/system_authservers.php
+10-185 files

LLVM/project 7897d92lldb/source/Commands CommandObjectType.cpp, lldb/test/Shell/Commands command-type-synthetic-add.test

[lldb][CommandObjectType] Print name of Python class when emitting warning about invalid synthetic provider (#181829)

Before:
```
(lldb) type synthetic add -l blah foo
warning: The provided class does not exist - please define it before attempting to use this synthetic provider
```

After:
```
(lldb) type synthetic add -l blah foo
warning: The provided class 'blah' does not exist - please define it before attempting to use this synthetic provider
```

Useful when many of these registration commands happen as part of
`~/.lldbinit`. Previously it wasn't immediately obvious which of those
commands failed.
DeltaFile
+6-4lldb/source/Commands/CommandObjectType.cpp
+6-0lldb/test/Shell/Commands/command-type-synthetic-add.test
+12-42 files

LLVM/project aa5d820clang/lib/CodeGen/TargetBuiltins ARM.cpp, clang/lib/Sema SemaARM.cpp

[clang][ARM] Refactor argument handling in `EmitAArch64BuiltinExpr` (2/2) (NFC)

Refactor `EmitAArch64BuiltinExpr` so that all AArch64/NEON builtins
handled by this hook _and marked as overloaded_ share a common path
for generating LLVM IR arguments (collected into the `Ops`
`SmallVector<Value*>`) (*). This is a follow-up for #181794 - please
refer to that PR for more context.

As in the previous PR, the key change is implemented in
`HasExtraNeonArgument` , i.e. in the hook that identifies Builtins with
the extra argument. In this PR, I am replacing the ad-hoc switch
statement with a more principled approach borrowed from SemaARM.cpp,
namely:
```cpp
uint64_t mask = 0;
  switch (BuiltinID) {
  #define GET_NEON_OVERLOAD_CHECK
  #include "clang/Basic/arm_fp16.inc"
  #include "clang/Basic/arm_neon.inc"

    [28 lines not shown]
DeltaFile
+46-253clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+3-1clang/lib/Sema/SemaARM.cpp
+49-2542 files

NetBSD/pkgsrc BkXTpFXdoc CHANGES-2026

   doc: Updated biology/py-dna-features-viewer to 3.1.5
VersionDeltaFile
1.1237+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc hx684bzbiology/py-dna-features-viewer Makefile PLIST

   py-dna_features_viewer: update to 3.1.5.

   v3.1.5

       Exclude unwanted folders (#94)

   v3.1.4

       Automated publishing to PyPI
       Automated documentation generation
       Switched to TOML package description
       No changes in functionality
VersionDeltaFile
1.7+10-5biology/py-dna-features-viewer/Makefile
1.2+5-5biology/py-dna-features-viewer/PLIST
1.2+4-4biology/py-dna-features-viewer/distinfo
+19-143 files

FreeBSD/ports c2535f9finance/fava distinfo Makefile

finance/fava: upgrade to 1.30.12.
DeltaFile
+3-3finance/fava/distinfo
+1-1finance/fava/Makefile
+4-42 files

OPNSense/core 8e8a707src/etc/inc config.inc

config: add config_write_array() magic

With this we can insert new entries without the need to grab the entry
beforehand using config_read_array().

    config_write_array('foo', 'bar', 'hello');

becomes

    <foo>
        <bar>hello</bar>
    </foo>
DeltaFile
+9-0src/etc/inc/config.inc
+9-01 files

LLVM/project ebaa9bfclang/lib/Driver/ToolChains FreeBSD.cpp FreeBSD.h, clang/test/Driver freebsd.cpp

[Toolchains][FreeBSD] Honor system libgcc

On Linux, the system libgcc may act as the compiler runtime, and Clang
provides -rtlib=compiler-rt to switch implementations.

FreeBSD ships libcompiler_rt.a (LLVM’s builtins) in the base system,
with libgcc.a as a symlink to it. These libraries are linked via -L and
-lgcc.

An interesting detail is that even if the Clang resource directory
(llvm-xx/lib/clang/xx) appears before the system path in the search
order, it is still not used. This is because the linker looks for
libgcc.a rather than libclang_rt.builtins.a.

Since FreeBSD does not currently support -rtlib, honor the system libgcc
by hardcoding its path. Detect and handle cases where a custom
compiler-rt is injected via -L as an override workaround.
DeltaFile
+15-0clang/lib/Driver/ToolChains/FreeBSD.cpp
+4-0clang/test/Driver/freebsd.cpp
+2-0clang/lib/Driver/ToolChains/FreeBSD.h
+21-03 files

LLVM/project 5dc9f1aclang/lib/CodeGen/TargetBuiltins ARM.cpp, clang/test/CodeGen arm64-microsoft-intrinsics.c

[clang][ARM] Refactor argument handling in `EmitAArch64BuiltinExpr` (1/2) (NFC)

Refactor `EmitAArch64BuiltinExpr` so that all AArch64/NEON builtins
handled by this hook _and marked as non-overloaded_ share a common path
for generating LLVM IR arguments (collected into the `Ops`
`SmallVector<Value*>`) (*)

Previously, the argument emission loop unconditionally skipped the
trailing argument:

```cpp
  for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; ++i)
```

This was originally intended to ignore the extra Sema-only argument
used by overloaded NEON builtins (e.g. the type discriminator passed
by `__builtin_neon_*` intrinsics). However, this logic was applied
unconditionally.


    [37 lines not shown]
DeltaFile
+225-79clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+16-16clang/test/CodeGen/arm64-microsoft-intrinsics.c
+241-952 files

FreeBSD/ports 5c5be37x11/hyprviz distinfo Makefile.crates

x11/hyprviz: Update to 0.8.0

Changelog: https://github.com/timasoft/hyprviz/releases/tag/v0.8.0

Reported by:    GitHub (watch releases)
DeltaFile
+19-9x11/hyprviz/distinfo
+9-4x11/hyprviz/Makefile.crates
+2-3x11/hyprviz/Makefile
+30-163 files

LLVM/project 449f99allvm/lib/CodeGen AtomicExpandPass.cpp, llvm/test/CodeGen/X86 atomic-nocx16-win.ll

[X86] Correctly call 16 byte atomic helpers on x86_64 Windows (#181356)

On x86_64 Windows, i128 values are returned in xmm0, and as arguments to
functions, they are passed indirectly (rather than in a GPR pair) - see
WinX86_64ABIInfo::classify in Clang [1].

When AtomicExpandPass generates a libcall, it normally generates one
with i128 arguments and return types. This type isn't lowered correctly
(it ends up passed or returned in a pair of GPRs).

To fix this issue, make AtomicExpandPass use the v2i64 type instead of
i128 here, just like Clang would do for an explicit function call; this
type ends up lowered correctly.

This fixes https://github.com/mstorsjo/llvm-mingw/issues/538 and
https://github.com/llvm/llvm-project/issues/136428.

[1]
https://github.com/llvm/llvm-project/blob/llvmorg-21.1.8/clang/lib/CodeGen/Targets/X86.cpp#L3390-L3408

    [2 lines not shown]
DeltaFile
+38-0llvm/test/CodeGen/X86/atomic-nocx16-win.ll
+10-0llvm/lib/CodeGen/AtomicExpandPass.cpp
+48-02 files

Illumos/gate dadc95eusr/src/lib/libc/port/gen getmntent.c, usr/src/man/man3c getmntent.3c

17728 hasmntopt should take const pointers
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Reviewed by: Andy Fiddaman <illumos at fiddaman.net>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
DeltaFile
+234-175usr/src/man/man3c/getmntent.3c
+6-5usr/src/lib/libc/port/gen/getmntent.c
+4-4usr/src/uts/common/sys/mnttab.h
+244-1843 files

LLVM/project 83833eelibcxx/src atomic.cpp

[libc++] Fix FreeBSD atomic timed wait system call (#180400)

This PR fixes atomic timed wait on FreeBSD platforms.

When we added timed wait support, on FreeBSD platform, we were looking
only the `UMTX_OP_WAIT` section of the FreeBSD doc
https://man.freebsd.org/cgi/man.cgi?query=_umtx_op&apropos=0&sektion=2&manpath=FreeBSD+16.0-CURRENT&format=html
. Somehow we missed the generic section that describes the timeout
parameter that applies to all operations. As a consequence, we missed
the part that the FreeBSD is expecting the `size` to be casted to
`uintptr_t`, then passed in to the `void*` parameter.

This PR fixes the issue by casting the type to what the system requires.

As drive by, this PR also
- uses simple `timespec` instead of the extended one
- as documentation suggests, "Interval counting is always performed by
the monotonic wall clock", and "If the flag is absent, the timeout value
is relative", which means that using the simple version is enough and

    [9 lines not shown]
DeltaFile
+12-11libcxx/src/atomic.cpp
+12-111 files

Illumos/gate b3cd65eusr/src Makefile.master, usr/src/tools/cw cw.c cw.1onbld

17743 cw: want time the compiler runs
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Dan McDonald <danmcd at edgecast.io>
DeltaFile
+19-1usr/src/tools/cw/cw.c
+15-1usr/src/tools/cw/cw.1onbld
+8-4usr/src/Makefile.master
+42-63 files

LLVM/project b1dbdf3llvm/test/CodeGen/AArch64 atomic-ops-lse.ll trampoline.ll

[AArch64] Consider MOVaddr* as cheap if fuse-adrp-add

These pseudo-instructions usually translate into a pair of adrp+add and
have a single cycle latency on some micro-architectures.
DeltaFile
+88-88llvm/test/CodeGen/AArch64/atomic-ops-lse.ll
+43-34llvm/test/CodeGen/AArch64/trampoline.ll
+55-0llvm/test/CodeGen/AArch64/cheap-as-a-move-MOVaddr.ll
+34-19llvm/test/CodeGen/AArch64/machine-outliner-loh.ll
+14-12llvm/test/CodeGen/AArch64/cfguard-checks.ll
+12-10llvm/test/CodeGen/AArch64/atomic-ops.ll
+246-16310 files not shown
+291-19416 files

LLVM/project 5739f43cross-project-tests lit.site.cfg.py.in, cross-project-tests/dtlto path.test

[DTLTO][Windows] Expand short 8.3 form paths in ThinLTO module IDs (#178303)

Windows supports short 8.3 form filenames (e.g. `compile_commands.json`
-> `COMPIL~1.JSO`) for legacy reasons. See:
https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#short-vs-long-names.

Short 8.3 form paths are undesirable in distributed compilation
scenarios because they are local mappings tied to a specific directory
layout on a specific machine. As a result, they can break or defeat
sandboxing and path-based isolation mechanisms used by distributed build
systems.

We have observed such failures with DTLTO even in simple scenarios. For
example, on Windows, running:

```
clang.exe hello.c -flto=thin -fuse-ld=lld -fthinlto-distributor=fastbuild.exe -###
```


    [32 lines not shown]
DeltaFile
+92-0cross-project-tests/dtlto/path.test
+59-9llvm/lib/DTLTO/DTLTO.cpp
+14-1cross-project-tests/lit.site.cfg.py.in
+6-1llvm/include/llvm/DTLTO/DTLTO.h
+171-114 files

LLVM/project 147dcd4cross-project-tests/dtlto path.test

[TEST][FIX] Fix typo in tool name: 'llvm-ar'

(cherry picked from commit 5c114d80f88ef418b5f3ba3c919d300e21c4e677)
DeltaFile
+2-2cross-project-tests/dtlto/path.test
+2-21 files

LLVM/project 68a700cllvm/include/llvm/DTLTO DTLTO.h, llvm/include/llvm/LTO LTO.h

[DTLTO][NFC] Minor improvements to the input file preparation class (#180824)

This change performs a small set of NFC refactors to improve clarity. In
particular, we make it clear that the responsibilities of this class now
extend beyond its original archive-handling role.

(cherry picked from commit 8b57b9730222cdc098d6a8708099e5b4986b1e2c)
DeltaFile
+71-88llvm/lib/DTLTO/DTLTO.cpp
+26-16llvm/include/llvm/DTLTO/DTLTO.h
+1-1llvm/include/llvm/LTO/LTO.h
+1-1llvm/lib/LTO/LTO.cpp
+99-1064 files

LLVM/project 86407b6llvm/include/llvm/Support/Windows WindowsSupport.h, llvm/lib/Support/Windows Path.inc

[Windows][Support] Add helper to expand short 8.3 form paths (#178480)

Windows supports short 8.3 form filenames (for example,
`compile_commands.json` -> `COMPIL~1.JSO`) for legacy reasons. See:
https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#short-vs-long-names

Such paths are not unusual because, on Windows, the system temporary
directory is commonly derived from the `TMP`/`TEMP` environment
variables. For historical compatibility reasons, these variables are
often set to short 8.3 form paths on systems where user names exceed
eight characters.

Introduce `windows::makeLongFormPath()` to convert paths to their long
form by expanding any 8.3 components via `GetLongPathNameW`.

As part of this change:
- Extended-length path prefix handling is centralized by adding
`stripExtendedPrefix()` and reusing it in `realPathFromHandle()`.
- `widenPath()` is cleaned up to use shared prefix constants.

    [5 lines not shown]
DeltaFile
+159-0llvm/unittests/Support/Path.cpp
+77-15llvm/lib/Support/Windows/Path.inc
+5-0llvm/include/llvm/Support/Windows/WindowsSupport.h
+241-153 files

LLVM/project affc059llvm/lib/Target/Hexagon/MCTargetDesc HexagonAsmBackend.cpp, llvm/test/MC/Hexagon newvalue_jump_ext_imm.s

[Hexagon] Fix encoding of packets with fixups followed by alignment (#179168)

When a packet containing extended immediates and new-value compare-jump
instructions with fixups was followed by a .p2align directive, we would
incorrectly add nops to the packet. After reshuffling, the fixup offsets
would become invalid, causing corrupted encodings.

Fixes round-trip assembly for patterns like:

    {
      r18 = ##65536
      if (!cmp.gtu(r1,r18.new)) jump:t .L1
    }
    .p2align 4

(cherry picked from commit 87d73f74713039cacf9d174a9d74de0db8eccb8b)
DeltaFile
+49-0llvm/test/MC/Hexagon/newvalue_jump_ext_imm.s
+7-0llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
+56-02 files