LLVM/project ce0a0bbclang/lib/StaticAnalyzer/Core HTMLDiagnostics.cpp, clang/test/Analysis/html_diagnostics highlight-range-mapping.cpp

[analyzer] Fix -analyzer-output=html assert on reversed and macro ranges

HTMLDiagnostics::HighlightRange guarded against a reversed range by
comparing line numbers, so a same-line reversal - which is what the piece for
an implicit copy constructor carries - reached html::HighlightRange.
Its scan walks from begin to end, ran off the end of the buffer, and asserted:
https://godbolt.org/z/sTb5qfjjd

  Invalid position to insert! (RewriteRope.h)

It also added the end token's length itself and then passed a token range to
html::HighlightRange, which measured the token again, this time from the
interior. For most tokens the two cancel, but where the tail re-lexes longer
the highlight reached past the end of the range, e.g. over a trailing ';'.

Use getExpansionRangeInFile(), which rejects reversed and cross-file ranges,
then convert once and tell html::HighlightRange the range is already
char-granular.


    [4 lines not shown]
DeltaFile
+43-0clang/test/Analysis/html_diagnostics/highlight-range-mapping.cpp
+8-27clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
+51-272 files

LLVM/project 15e4cb0clang/lib/StaticAnalyzer/Core SarifDiagnostics.cpp, clang/test/Analysis/diagnostics sarif-macro-expansion.c

[analyzer] Fix -analyzer-output=sarif crash on macro-expanded ranges

A path piece whose range ends inside a macro expansion aborted the whole
document: https://godbolt.org/z/61vWYcsWj

  Cannot create a physicalLocation from invalid SourceRange!

convertTokenRangeToCharRange() built the end with
Lexer::getLocForEndOfToken(), which returns an invalid location for a macro
ID that is not at the end of its expansion, and used it unchecked. The
analyzer's own test corpus hits this in nine files; text and plist output
were unaffected because both already map such ranges to the expansion.

- Use getExpansionRangeInFile(), so the region covers the macro use like the
  other two outputs.
- Fall back to a caret when the range is unusable. A thread flow needs a
  location per piece, so dropping one would truncate the reported path. This
  also stops reversed ranges producing regions with endColumn < startColumn.


    [4 lines not shown]
DeltaFile
+22-21clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
+35-0clang/test/Analysis/diagnostics/sarif-macro-expansion.c
+57-212 files

LLVM/project 6d55da4clang/include/clang/Frontend DiagnosticRenderer.h, clang/lib/Frontend DiagnosticRenderer.cpp

[clang] Reject ranges getExpansionRangeInFile cannot represent

getExpansionRangeInFile was extracted verbatim and inherited two shortcomings
of the original loop, fixed here before the analyzer's SARIF and HTML consumers
depend on it:

- It mapped the end with getExpansionRange(SourceLocation), which always
  reports a token range, so a char-range input was widened by a whole token.
  Now using the getExpansionRange(CharSourceRange) overload, which keeps the flag.
- It passed reversed ranges through. Consumers walk begin->end; now returning
  nullopt for those, as Lexer::makeFileCharRange already does.

Separate from the extraction so that stays NFC, and out of the consumer fixes
because it changes the shared helper's contract rather than one output.

Both contract changes, plus the invalid- and cross-file-range guards, are
covered by a GetExpansionRangeInFile unit test in
clang/unittests/Frontend/TextDiagnosticTest.cpp.

Assisted-By: claude
DeltaFile
+89-0clang/unittests/Frontend/TextDiagnosticTest.cpp
+8-1clang/include/clang/Frontend/DiagnosticRenderer.h
+6-0clang/lib/Frontend/DiagnosticRenderer.cpp
+103-13 files

LLVM/project b7dca3allvm/test/CodeGen/AMDGPU amdgcn.bitcast.96bit.ll, llvm/test/CodeGen/X86 build-vector-known-bits-poison.ll kmov.ll

DAG: Skip poison elements in BUILD_VECTOR computeKnownBits

This defends against regressions in future patches. Copies the logic
from the IR version of computeKnownBits's handling of ConstantVector.
I'm not sure why the IR version doesn't directly return a value for poison,
but this follows suit.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+67-64llvm/test/CodeGen/X86/ifma-combine-vpmadd52.ll
+40-41llvm/test/CodeGen/X86/srem-vector-lkk.ll
+29-21llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
+8-18llvm/test/CodeGen/X86/pr120906.ll
+9-9llvm/test/CodeGen/X86/kmov.ll
+3-11llvm/test/CodeGen/X86/build-vector-known-bits-poison.ll
+156-1647 files not shown
+183-18613 files

LLVM/project 9f0e070lldb/test/API/tools/lldb-server/registers-target-xml-reading TestGdbRemoteTargetXmlPacket.py

[lldb] Correct architecture comparison for Arm (#214771)

The arm architecture has different variants (arm64, armv8l e.t.c). 
We only check if it starts with the arm prefix.

Follow up to #210946
DeltaFile
+1-1lldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
+1-11 files

LLVM/project 87b26f0clang/lib/Frontend DiagnosticRenderer.cpp

NFC Add braces
DeltaFile
+2-1clang/lib/Frontend/DiagnosticRenderer.cpp
+2-11 files

LLVM/project f9e6d5fclang/include/clang/Frontend DiagnosticRenderer.h

[clang][NFC] Document getExpansionRangeInFile's nullopt cases
DeltaFile
+2-0clang/include/clang/Frontend/DiagnosticRenderer.h
+2-01 files

FreeBSD/ports 213840caudio/guitarix-lv2 Makefile, audio/ncmpcpp Makefile

*/*: bump consumers after devel/boost update
DeltaFile
+1-1www/osrm-backend/Makefile
+1-1textproc/xmlwrapp/Makefile
+1-1textproc/source-highlight/Makefile
+1-1textproc/luceneplusplus/Makefile
+1-1audio/ncmpcpp/Makefile
+1-1audio/guitarix-lv2/Makefile
+6-6168 files not shown
+174-99174 files

FreeBSD/ports 6c0dffedevel/boost-all common.mk distinfo, devel/boost-libs Makefile pkg-plist

devel/boost: update to 1.90.0 release

Release notes:  https://www.boost.org/releases/1.90.0/
DeltaFile
+90-40devel/boost-libs/pkg-plist
+22-9devel/boost-libs/Makefile
+3-5devel/boost-all/compiled.mk
+3-3devel/boost-all/distinfo
+1-1devel/boost-all/common.mk
+119-585 files

FreeBSD/ports 15b34d5devel/boost-libs pkg-plist, devel/boost-libs/files patch-libs_process_src_ext_env.cpp patch-libs_process_src_ext_cmd.cpp

devel/boost: update to 1.91.0 release (+)

Release notes:  https://www.boost.org/releases/1.91.0/
DeltaFile
+336-21devel/boost-libs/pkg-plist
+0-36devel/boost-libs/files/patch-AT_NO_AUTOMOUNT
+10-25devel/boost-libs/files/patch-libs_stacktrace_build_has__addr2line.cpp
+33-0devel/boost-libs/files/patch-libs_filesystem_src_operations.cpp
+20-0devel/boost-libs/files/patch-libs_process_src_ext_env.cpp
+20-0devel/boost-libs/files/patch-libs_process_src_ext_cmd.cpp
+419-8210 files not shown
+496-10616 files

FreeBSD/ports 232c785devel/libbacktrace Makefile distinfo

devel/libbacktrace: update to 20250929 snapshot

This update required to allow Boost to be built with backtrace support and GIL/ZSTD support

With hat:       office/boost
DeltaFile
+2-4devel/libbacktrace/Makefile
+3-3devel/libbacktrace/distinfo
+5-72 files

LLVM/project 4414edcllvm/test/CodeGen/X86 build-vector-known-bits-poison.ll

X86: Add baseline test for computeKnownBits poison+vector handling (#213325)

Currently computeKnownBits is too conservative with poison inputs.
DeltaFile
+33-0llvm/test/CodeGen/X86/build-vector-known-bits-poison.ll
+33-01 files

LLVM/project 487989cclang/include/clang/Options FlangOptions.td, flang/lib/Frontend CompilerInvocation.cpp

Rename flag to -fsum-association

Aliases with the old names are retained.
DeltaFile
+43-0flang/test/Driver/sum-reassociation.f90
+0-27flang/test/Driver/real-sum-reassociation.f90
+7-2clang/include/clang/Options/FlangOptions.td
+4-2flang/test/Driver/driver-help.f90
+2-2flang/test/Lower/split-sum-expression-tree-lowering.f90
+2-2flang/lib/Frontend/CompilerInvocation.cpp
+58-351 files not shown
+60-377 files

LLVM/project b97d8b2llvm/test/Transforms/LoopVectorize/X86 libm-vector-calls-finite.ll libm-vector-calls-VF2-VF8.ll

[LoopVectorize][X86] Improve libmvec SSE/AVX/AVX-512 test coverage (#211863)

This PR updates the libmvec loop vectorization tests to use `-force-vector-width` instead of hardcoded loop metadata.

Fixes #211532
DeltaFile
+601-274llvm/test/Transforms/LoopVectorize/X86/libm-vector-calls.ll
+0-480llvm/test/Transforms/LoopVectorize/X86/libm-vector-calls-VF2-VF8.ll
+118-60llvm/test/Transforms/LoopVectorize/X86/libm-vector-calls-finite.ll
+719-8143 files

LLVM/project 794aa0fllvm/lib/Support APFloat.cpp, llvm/unittests/ADT APFloatTest.cpp

[APFloat] Don't turn a Float8E8M0FNU NaN into an Inf on conversion (#214919)

`Float8E8M0FNU` has a precision of 1, so it stores no significand bits
and its NaN carries no payload. `IEEEFloat::convert` shifts the (empty)
significand into the target format, which leaves the NaN exponent with
an all-zero significand — and that is the encoding of an infinity in any
format that has infinities.

The `APFloat` object still reports `fcNaN`, so `isNaN()` returns true,
but `bitcastToAPInt()` hands back Inf bits. Anything that stores the bit
pattern rather than the object — `ConstantFP`, MLIR's `FloatAttr` —
therefore ends up with an infinity.

In MLIR this shows up when folding `arith.extf` on an `f8E8M0FNU`
constant. The OCP MXFP spec uses the all-ones encoding as the scale of
an invalid block, so this silently replaces "this block is invalid" with
a value that poisons everything it is multiplied into:

```mlir

    [27 lines not shown]
DeltaFile
+30-0llvm/unittests/ADT/APFloatTest.cpp
+19-0mlir/test/Dialect/Arith/canonicalize.mlir
+5-0llvm/lib/Support/APFloat.cpp
+54-03 files

LLVM/project 2938cfcclang/lib/StaticAnalyzer/Core HTMLDiagnostics.cpp, clang/test/Analysis/html_diagnostics highlight-range-mapping.cpp

[analyzer] Fix -analyzer-output=html assert on reversed and macro ranges

HTMLDiagnostics::HighlightRange guarded against a reversed range by
comparing line numbers, so a same-line reversal - which is what the piece for
an implicit copy constructor carries - reached html::HighlightRange.
Its scan walks from begin to end, ran off the end of the buffer, and asserted:
https://godbolt.org/z/sTb5qfjjd

  Invalid position to insert! (RewriteRope.h)

It also added the end token's length itself and then passed a token range to
html::HighlightRange, which measured the token again, this time from the
interior. For most tokens the two cancel, but where the tail re-lexes longer
the highlight reached past the end of the range, e.g. over a trailing ';'.

Use getExpansionRangeInFile(), which rejects reversed and cross-file ranges,
then convert once and tell html::HighlightRange the range is already
char-granular.


    [4 lines not shown]
DeltaFile
+43-0clang/test/Analysis/html_diagnostics/highlight-range-mapping.cpp
+8-27clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
+51-272 files

LLVM/project e29e70dclang/lib/StaticAnalyzer/Core SarifDiagnostics.cpp, clang/test/Analysis/diagnostics sarif-macro-expansion.c

[analyzer] Fix -analyzer-output=sarif crash on macro-expanded ranges

A path piece whose range ends inside a macro expansion aborted the whole
document: https://godbolt.org/z/61vWYcsWj

  Cannot create a physicalLocation from invalid SourceRange!

convertTokenRangeToCharRange() built the end with
Lexer::getLocForEndOfToken(), which returns an invalid location for a macro
ID that is not at the end of its expansion, and used it unchecked. The
analyzer's own test corpus hits this in nine files; text and plist output
were unaffected because both already map such ranges to the expansion.

- Use getExpansionRangeInFile(), so the region covers the macro use like the
  other two outputs.
- Fall back to a caret when the range is unusable. A thread flow needs a
  location per piece, so dropping one would truncate the reported path. This
  also stops reversed ranges producing regions with endColumn < startColumn.


    [4 lines not shown]
DeltaFile
+22-21clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
+35-0clang/test/Analysis/diagnostics/sarif-macro-expansion.c
+57-212 files

LLVM/project ee8dc4cclang/include/clang/Frontend DiagnosticRenderer.h, clang/lib/Frontend DiagnosticRenderer.cpp

[clang] Reject ranges getExpansionRangeInFile cannot represent

getExpansionRangeInFile was extracted verbatim and inherited two shortcomings
of the original loop, fixed here before the analyzer's SARIF and HTML consumers
depend on it:

- It mapped the end with getExpansionRange(SourceLocation), which always
  reports a token range, so a char-range input was widened by a whole token.
  Now using the getExpansionRange(CharSourceRange) overload, which keeps the flag.
- It passed reversed ranges through. Consumers walk begin->end; now returning
  nullopt for those, as Lexer::makeFileCharRange already does.

Separate from the extraction so that stays NFC, and out of the consumer fixes
because it changes the shared helper's contract rather than one output.

Both contract changes, plus the invalid- and cross-file-range guards, are
covered by a GetExpansionRangeInFile unit test in
clang/unittests/Frontend/TextDiagnosticTest.cpp.

Assisted-By: claude
DeltaFile
+89-0clang/unittests/Frontend/TextDiagnosticTest.cpp
+9-2clang/include/clang/Frontend/DiagnosticRenderer.h
+8-1clang/lib/Frontend/DiagnosticRenderer.cpp
+106-33 files

LLVM/project 550d4a4clang/include/clang/Frontend DiagnosticRenderer.h

[clang][NFC] Document getExpansionRangeInFile's nullopt cases
DeltaFile
+3-0clang/include/clang/Frontend/DiagnosticRenderer.h
+3-01 files

LLVM/project a117608clang/lib/Frontend DiagnosticRenderer.cpp

[clang][NFC] Reuse SourceManager::getExpansionRange in getExpansionRangeInFile
DeltaFile
+4-6clang/lib/Frontend/DiagnosticRenderer.cpp
+4-61 files

LLVM/project 3027f32llvm/test/Transforms/LoopVectorize pr34681.ll bounded-load.ll, llvm/test/Transforms/LoopVectorize/RISCV strided-accesses-narrow-iv.ll strided-access-wide-stride.ll

[LV] Avoid adding stray predicates in isConsecutivePtr (#213662)

If the absolute value of Stride is not unit, avoid adding stray SCEV
predicates.
DeltaFile
+117-75llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
+77-36llvm/test/Transforms/LoopVectorize/RISCV/strided-access-wide-stride.ll
+15-73llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+58-18llvm/test/Transforms/LoopVectorize/bounded-load.ll
+48-18llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses-narrow-iv.ll
+2-26llvm/test/Transforms/LoopVectorize/pr34681.ll
+317-2464 files not shown
+336-29010 files

LLVM/project c6a18acllvm/lib/Target/AArch64 AArch64SchedHIP12.td, llvm/test/tools/llvm-mca/AArch64/HiSilicon hip12-forwarding.s hip12-basic-instructions.s

[AArch64] Add initial sched model for hip12 (#212935)

This patch adds initial sched model for Hisilicon's hip12 core (Kunpeng
950 processor).
DeltaFile
+6,869-0llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-sve-instructions.s
+5,269-0llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-writeback.s
+3,354-0llvm/lib/Target/AArch64/AArch64SchedHIP12.td
+3,159-0llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-neon-instructions.s
+2,519-0llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-basic-instructions.s
+1,871-0llvm/test/tools/llvm-mca/AArch64/HiSilicon/hip12-forwarding.s
+23,041-013 files not shown
+23,824-219 files

FreeBSD/ports 3aa54e2japanese/font-plemoljp Makefile distinfo, japanese/font-plemoljp-hs Makefile distinfo

japanese/font-plemoljp{,-nf,-ns}: update to 3.1.0
DeltaFile
+3-3japanese/font-plemoljp/distinfo
+3-3japanese/font-plemoljp-nf/distinfo
+3-3japanese/font-plemoljp-hs/distinfo
+1-1japanese/font-plemoljp/Makefile
+1-1japanese/font-plemoljp-nf/Makefile
+1-1japanese/font-plemoljp-hs/Makefile
+12-126 files

OpenBSD/src QRZsfRlsbin/iked ca.c

   iked: avoid parameter overload

   Old ca_validate_cert() API interpreted data pointer as parsed X509
   structure if len == 0 and crashed if a zero size certificate buffer
   was passed instead.  Now we have an explicit certifcate and key
   parameter.

   from markus@

   ok bluhm@ tb@
VersionDeltaFile
1.106+26-26sbin/iked/ca.c
+26-261 files

NetBSD/pkgsrc RMq3lqZdoc CHANGES-2026

   Updated security/defguard-gateway
VersionDeltaFile
1.5136+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc 14Gj4G6security/defguard-gateway cargo-depends.mk Makefile

   defguard-gateway: updated to 2.0.4

   2.0.4
   Fixes interface configuration errors which can occur due to transient Core connection loss.
VersionDeltaFile
1.8+4-4security/defguard-gateway/distinfo
1.8+4-2security/defguard-gateway/Makefile
1.7+0-0security/defguard-gateway/cargo-depends.mk
+8-63 files

NetBSD/pkgsrc-wip bb9e1bapy-keras TODO

py-keras: Add reference to CVE-2026-12570
DeltaFile
+1-1py-keras/TODO
+1-11 files

LLVM/project d928627llvm/test/Transforms/LoopVectorize/AArch64 induction-costs.ll optsize_minsize.ll, llvm/test/Transforms/LoopVectorize/ARM optsize_minsize.ll

[VPlan] Cost truncated widened inductions via ::computeCost. (#212786)

Follow-up to https://github.com/llvm/llvm-project/pull/202232 to also
compute costs for truncated inductions in ::computeCost, removing the
fallback to the legacy cost model unless the loop is fully unrolled.

Note that this changes vectorization decisions in both direction, e.g.
* now vectorized `@tail_predicate_without_optsize`: legacy costs <16 x
i64>, whereas we generate a narrow IV <16 x i8>, which is much cheaper
* no longer vectorized `@second_lshr_operand_zero_via_scev()`: we
generate 2 IVs (one truncated and one not truncated), which is more
expensive than the single IV LV assumes (note that previously we would
ignore the cost of the trunc in the cost computation, because the trunc
was replaced by the wide truncated IV, which was assumed free.

Both cases are due to more accurate cost computations.

PR: https://github.com/llvm/llvm-project/pull/212786
DeltaFile
+130-17llvm/test/Transforms/LoopVectorize/ARM/optsize_minsize.ll
+17-35llvm/test/Transforms/LoopVectorize/X86/cost-constant-known-via-scev.ll
+24-24llvm/test/Transforms/LoopVectorize/AArch64/optsize_minsize.ll
+18-18llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
+15-6llvm/test/Transforms/LoopVectorize/X86/conversion-cost.ll
+8-8llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
+212-1083 files not shown
+221-1279 files

LLVM/project b4c970cllvm/test/CodeGen/X86 pext-vector.ll pdep-vector.ll

[X86] Add pdep/pext vector test coverage (#215231)

Baseline tests for #214508
DeltaFile
+889-0llvm/test/CodeGen/X86/pdep-vector.ll
+869-0llvm/test/CodeGen/X86/pext-vector.ll
+1,758-02 files

LLVM/project 09f5979llvm/lib/Analysis IVDescriptors.cpp, llvm/lib/Transforms/Vectorize VPlanRecipes.cpp VPlanTransforms.cpp

[LV] Vectorize down-counting floating-point argmin/argmax reductions

Extend the multi-use min/max reduction coupling so a floating-point
min/max value reduction can be paired with a down-counting (FindFirst)
index reduction, enabling argmin/argmax vectorization for loops whose
induction counts down.

Analysis (IVDescriptors):
 - Recognize select-based FP min/max recurrences, not just the
   intrinsic form.
 - For the shared-compare argmin/argmax shape (the reduction compare
   also feeds an index select), take the required NaN-free and
   signed-zero-free facts from the compare when the select itself does
   not carry them. Plain min/max reductions keep the strict
   flags-on-the-select rule.

VPlan (handleMultiUseReductions):
 - Accept a select as the value reduction's min/max operation and read
   its value operands accordingly.

    [14 lines not shown]
DeltaFile
+221-43llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+127-0llvm/test/Transforms/LoopVectorize/AArch64/select-index-decreasing.ll
+29-5llvm/lib/Analysis/IVDescriptors.cpp
+26-2llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+404-505 files