LLVM/project 815533bclang/include/clang/Sema Sema.h, clang/lib/Parse ParseTemplate.cpp ParseExprCXX.cpp

[clang] fix typo correction crash with template destructor names (#207101)

Disables typo correction for template destructor names, as typo
correction is not aware of destructors and would provide suugestions
which would form an invalid name.

Since this fixes a regression that was never released, there are no
release notes.

Fixes #206992
DeltaFile
+7-11clang/lib/Sema/SemaTemplate.cpp
+7-8clang/lib/Parse/ParseTemplate.cpp
+4-4clang/lib/Parse/ParseExprCXX.cpp
+6-0clang/test/SemaCXX/typo-correction.cpp
+1-1clang/include/clang/Sema/Sema.h
+25-245 files

LLVM/project 24e7deeclang/docs ReleaseNotes.md, clang/lib/Sema SemaTemplateInstantiateDecl.cpp

[clang] Fix crash in VisitVarTemplatePartialSpecializationDecl on failed instantiation (#200161)

Fixes #198890

When a class template is explicitly instantiated and a member variable
template's type involves a substitution failure (e.g. `typename T::type`
with `T=int`), `VisitVarDecl` returned `nullptr`, causing
`VisitVarTemplateDecl` to bail out before registering the
`VarTemplateDecl` in the owner's lookup table. A subsequent call to
`VisitVarTemplatePartialSpecializationDecl` then hit an assert
(`!Found.empty()`) on the empty lookup result.

Fix: When `SubstType` fails and `InstantiatingVarTemplate=true`, recover
by using `int` as the type (via `getTrivialTypeSourceInfo(IntTy)`) and
mark the resulting `VarDecl` invalid. This ensures
`VisitVarTemplateDecl` always receives a valid `VarDecl` and finishes
registering the `VarTemplateDecl`, preserving the invariant the asserts
rely on.

A regression test is added in `clang/test/SemaTemplate/GH198890.cpp`.
DeltaFile
+26-0clang/test/SemaTemplate/GH198890.cpp
+14-5clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+5-0clang/docs/ReleaseNotes.md
+45-53 files

LLVM/project 70de698orc-rt/include/orc-rt Error.h, orc-rt/unittests ErrorTest.cpp

[orc-rt] Fix unused Expected::isFailureOfType, add testcase. (#207105)

Expected::isFailureOfType method template was calling a non-existant
Error::isFailureOfType method, but didn't trigger any compile errors as
isFailureOfType was unused. This commit fixes isFailureOfType and adds a
testcase to exercise it.
DeltaFile
+22-0orc-rt/unittests/ErrorTest.cpp
+1-1orc-rt/include/orc-rt/Error.h
+23-12 files

LLVM/project bcf2f5cclang/include/clang/AST OpenMPClause.h, clang/include/clang/Sema SemaOpenMP.h

Fix review comments
DeltaFile
+20-18clang/include/clang/AST/OpenMPClause.h
+20-7clang/lib/Sema/SemaOpenMP.cpp
+10-10clang/test/OpenMP/teams_num_teams_messages.cpp
+8-8clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp
+5-4clang/include/clang/Sema/SemaOpenMP.h
+4-4clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp
+67-513 files not shown
+75-569 files

FreeBSD/ports 2ac9e4agames/CWR-CE Makefile pkg-descr, games/CWR-CE/files install-cwr-data.sh cwr-ce.sh

games/CWR-CE: New port

Game engine of Arma: Cold War Assault - Remastered
DeltaFile
+392-0games/CWR-CE/files/install-cwr-data.sh
+79-0games/CWR-CE/Makefile
+41-0games/CWR-CE/files/cwr-ce.sh
+31-0games/CWR-CE/files/pkg-message.in
+15-0games/CWR-CE/pkg-descr
+7-0games/CWR-CE/distinfo
+565-01 files not shown
+566-07 files

LLVM/project 37e83e7orc-rt/include/orc-rt Error.h

[orc-rt] Add some missing noexcept specifiers to Error.h. (#206984)
DeltaFile
+25-21orc-rt/include/orc-rt/Error.h
+25-211 files

FreeBSD/ports 1597cdedatabases/timescaledb distinfo Makefile

databases/timescaledb: Update to 2.28.2
DeltaFile
+3-3databases/timescaledb/distinfo
+1-1databases/timescaledb/Makefile
+2-0databases/timescaledb/pkg-plist
+6-43 files

FreeBSD/ports 9e87c0bdevel/sem distinfo Makefile

devel/sem: Update to 0.15.1
DeltaFile
+3-3devel/sem/distinfo
+1-1devel/sem/Makefile
+4-42 files

NetBSD/src v24NZWasys/rump/net/lib/libwg wg_user.c

   wg-userspace(8): Ignore recvfrom errors.

   On IPv6 networks, issuing sendto(2) when we've lost IPv6 connectivity
   may eventually lead to the next recvfrom(2) failing with EHOSTDOWN.
   Example ktrace:

     8072  16529 rump_server 1782951176.090085182 CALL  sendto(0xa,0x70fb4fa1b50c,0x60,0,0x70fb4f236b00,0x1c)
     8072  16529 rump_server 1782951176.090085664 MISC  msghdr: [name=0x70fb4f236b00, namelen=28, iov=0xffffc5126bfa8f50, iovlen=1, control=0x0, controllen=0, flags=0]
     8072  16529 rump_server 1782951176.090086919 MISC  mbsoname: [2601:...]
     8072  16529 rump_server 1782951176.090093493 GIO   fd 10 wrote 96 bytes
     8072  16529 rump_server 1782951176.090094033 RET   sendto 96/0x60
   ...
     8072  23248 rump_server 1782951180.090105990 CALL  recvfrom(0xa,0x70fb4efe203c,0x233a,0,0x70fb3f7cff50,0x70fb3f7cff4c)
     8072  23248 rump_server 1782951180.090106339 MISC  msghdr: [name=0x0, namelen=0, iov=0xffffc5126c63ff20, iovlen=1, control=0x0, controllen=0, flags=0]
     8072  23248 rump_server 1782951180.090107309 RET   recvfrom -1 errno 64 Host is down

   In this case, wg_user_rcvthread mistakenly ignored the failing result
   and blithely shoved the ssize_t -1 error indicator into
   iov[1].iov_len and passed it on to rumpkern_recv_peer:

    [34 lines not shown]
VersionDeltaFile
1.4+4-4sys/rump/net/lib/libwg/wg_user.c
+4-41 files

LLVM/project 92313efmlir/include/mlir-c Rewrite.h, mlir/lib/CAPI/Transforms Rewrite.cpp

Revert "[mlir-c] Add ConversionTarget dynamic legality C API" (#207104)

Reverts llvm/llvm-project#206161 due to SAN failures.
DeltaFile
+0-180mlir/test/CAPI/rewrite.c
+0-60mlir/lib/CAPI/Transforms/Rewrite.cpp
+0-44mlir/include/mlir-c/Rewrite.h
+0-2843 files

FreeBSD/src f27c1dashare/man/man4 ntsync.4

ntsync.4: be explicit about the effect of automatic vs manual event on waiters

(cherry picked from commit 65251c43415aa0993b7d43962cbb71d772870c83)
DeltaFile
+7-1share/man/man4/ntsync.4
+7-11 files

Linux/linux 4a50a14lib bootconfig.c

Merge tag 'bootconfig-fixes-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull bootconfig fix from Masami Hiramatsu:

 - bootconfig: Fix NULL-pointer arithmetic

   Fix undefined pointer arithmetic in xbc_snprint_cmdline() when
   probing the buffer length with NULL and size 0. Track the written
   length as a size_t instead to prevent build-time UBSan/FORTIFY_SOURCE
   failures.

* tag 'bootconfig-fixes-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  bootconfig: fix NULL-pointer arithmetic in xbc_snprint_cmdline()
DeltaFile
+16-7lib/bootconfig.c
+16-71 files

FreeBSD/src 0b9f4c6sys/fs/nfsserver nfs_nfsdserv.c

nfs_nfsdserv.c: Fix setting of birthtime for some ZFS pools

Some ZFS pools do not support va_birthtime and will return
EINVAL when a VOP_SETATTR() of it is attempted.  The MacOS
NFSv4 client sets va_birthtime (TimeCreate) in the same
Setattr with ctime/mtime and other attributes after a new
file is created.  The EINVAL failure leaves these new files
messed up (mode == 0).

This patch pretends the setting of TimeCreate succeeded if
ctime/mtime were also set in the same Setattr RPC, which
resolves the problem for the MacOS client.

If this fix is not sufficient, a new pathconf name to detect
if a file system supports birthtime may be needed.

PR:     296066

(cherry picked from commit b1af05406b5117d76f567056fba0a023a6374465)
DeltaFile
+10-0sys/fs/nfsserver/nfs_nfsdserv.c
+10-01 files

FreeBSD/src 76badd2sys/fs/nfsserver nfs_nfsdserv.c

nfs_nfsdserv.c: Fix setting of birthtime for some ZFS pools

Some ZFS pools do not support va_birthtime and will return
EINVAL when a VOP_SETATTR() of it is attempted.  The MacOS
NFSv4 client sets va_birthtime (TimeCreate) in the same
Setattr with ctime/mtime and other attributes after a new
file is created.  The EINVAL failure leaves these new files
messed up (mode == 0).

This patch pretends the setting of TimeCreate succeeded if
ctime/mtime were also set in the same Setattr RPC, which
resolves the problem for the MacOS client.

If this fix is not sufficient, a new pathconf name to detect
if a file system supports birthtime may be needed.

PR:     296066

(cherry picked from commit b1af05406b5117d76f567056fba0a023a6374465)
DeltaFile
+10-0sys/fs/nfsserver/nfs_nfsdserv.c
+10-01 files

LLVM/project 53069acclang/lib/CIR/CodeGen CIRGenExprConstant.cpp, clang/lib/CIR/Dialect/IR CIRAttrs.cpp

[CIR] Implement Flexible Array Members for const-record lowering (#206564)

The previous patch I did rewrote the ConstRecordBuilder in a way that
resulted in flexible array members being an NYI. This was because it
requires quite a bit of additional work to accomplish this.

This patch does this implementation. It does so by: 1- Changing the CIR
dialect to just support them. If a struct type ends in a zero size
array, it allows constant initialization with a non-zero array size.
This patch adds this, as well as tests to do so.

2- Change our LowerToLLVM to detect this pattern, and substitute in the
struct-literal type. There is some additional work to allow us to do a
padded literal, which results in slightly more matches to classic
codegen. But otherwise, it is a pretty straight forward struct
replacement with a larger array type.
DeltaFile
+91-3clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+60-0clang/test/CIR/CodeGen/flexible-array-init.c
+33-0clang/test/CIR/IR/invalid-const-record.cir
+28-3clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
+21-0clang/test/CIR/IR/const-record-flexible-array.cir
+7-6clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
+240-122 files not shown
+255-128 files

LLVM/project e787692clang/include/clang/Sema Sema.h, clang/lib/Parse ParseTemplate.cpp ParseExprCXX.cpp

[clang] fix typo correction crash with template destructor names

Disables typo correction for template destructor names,
as typo correction is not aware of destructors and would
provide suugestions which would form an invalid name.

Since this fixes a regression that was never released, there are no release
notes.

Fixes #206992
DeltaFile
+7-11clang/lib/Sema/SemaTemplate.cpp
+7-8clang/lib/Parse/ParseTemplate.cpp
+4-4clang/lib/Parse/ParseExprCXX.cpp
+6-0clang/test/SemaCXX/typo-correction.cpp
+1-1clang/include/clang/Sema/Sema.h
+25-245 files

LLVM/project 6b3e723lldb/include/lldb/Utility Policy.h, lldb/source/Target Process.cpp StopInfo.cpp

[lldb] Harden PolicyStack against cross-thread Guard misuse (#195774)

Two related correctness/clarity improvements to the `Policy`
infrastructure introduced by 504a112:

`PolicyStack::Guard` now stores the std::thread::id of the thread that
created it. Destruction and move operations call
`llvm::report_fatal_error` when they happen on a different thread, since
the `PolicyStack` is `thread_local`: popping from the wrong thread would
silently corrupt that thread's stack.

`Push`/`Pop` on `PolicyStack` are now private. Callers go through named
factories (`PushPrivateState`, `PushPublicStateRunningExpression`) that
return RAII Guards. The transition factories on Policy
(`CreatePrivateState`, `CreatePublicStateRunningExpression`) inherit
from `PolicyStack::Get().Current()` and apply their named change on top,
so pushed policies preserve existing stack state rather than resetting
unrelated fields. `CreatePublicState` remains the baseline reference
value (returns a default `Policy{}`); the stack returns to public state

    [13 lines not shown]
DeltaFile
+76-24lldb/unittests/Utility/PolicyTest.cpp
+56-29lldb/include/lldb/Utility/Policy.h
+56-0lldb/source/Utility/Policy.cpp
+6-6lldb/source/Target/Process.cpp
+2-2lldb/source/Target/StopInfo.cpp
+1-1lldb/source/Target/Thread.cpp
+197-626 files

LLVM/project bf271c1clang/include/clang/Sema Sema.h, clang/lib/Parse ParseTemplate.cpp ParseExprCXX.cpp

[clang] fix typo correction crash with template destructor names

Disables typo correction for template destructor names,
as typo correction is not aware of destructors and would
provide suugestions which would form an invalid name.

Since this fixes a regression that was never released, there are no release
notes.

Fixes #206992
DeltaFile
+7-8clang/lib/Parse/ParseTemplate.cpp
+4-4clang/lib/Parse/ParseExprCXX.cpp
+6-0clang/test/SemaCXX/typo-correction.cpp
+2-3clang/lib/Sema/SemaTemplate.cpp
+1-1clang/include/clang/Sema/Sema.h
+20-165 files

NetBSD/src 8EpGHCysys/net if_wg.c

   wg-userspace(8): Drop <4-byte UDP packets immediately.

   Same as the kernel already does.  Add an assertion into
   wg_receive_packets about this and a couple comments cross-referencing
   wg_overudp_cb and wg_receive_packets.

   And, while here, as a precaution in case the
   inpcb_register_overudp_cb mechanism ever breaks down or gets
   refactored, make wg_receive_packets drop <4-byte packets too -- this
   path should be hit only when handling handshake packets, so adding
   another predicted-not-taken branch here should cost essentially
   nothing.

   PR bin/60392: assertion "mbuflen >= sizeof(struct wg_msg)" failed
VersionDeltaFile
1.141+25-3sys/net/if_wg.c
+25-31 files

FreeBSD/src cf85111sys/x86/include specialreg.h, sys/x86/x86 identcpu.c

x86: add CPUID bits for SHA512/SM3/SM4

Reviewed by:    mav
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58003
DeltaFile
+3-0sys/x86/x86/identcpu.c
+3-0sys/x86/include/specialreg.h
+6-02 files

LLVM/project 26bf00bclang/test/CIR/IR invalid-linkage.cir

[CIR][NFC] Re-enable invalid linkage test (#205459)

The CIR verification test for a cir.global op with a missing linkage
attribute was broken by a change to the MLIR asm parser back in April.
At that time, I marked the test as XFAIL and added a check that would
prevent it from randomly passing. In the meantime, another MLIR parser
changed (https://github.com/llvm/llvm-project/pull/188008) fixed the
original problem.

This change reverts the test to its previous state since it now passes.
DeltaFile
+0-3clang/test/CIR/IR/invalid-linkage.cir
+0-31 files

FreeBSD/ports 1959aaagraphics/nvidia-drm-515-kmod/files patch-nvidia-drm-helper.h, graphics/nvidia-drm-61-kmod/files patch-nvidia-drm-helper.h

graphics/nvidia-drm-*-kmod*: Fix GPF in some configs

Fix General Protection Fault in __nv_drm_gem_nvkms_handle_vma_fault,
lkpi_vmf_insert_pnf_prot_locked, vm_page_busy_acquire in specific
configurations, notably KDE on Wayland.

PR:             296195
Reported by:    keivan at motavalli.me
Reviewed by:    ashafer
Tested by:      keivan at motavalli.me
Differential Revision:  https://reviews.freebsd.org/D57989

Co-authored by: ashafer at FreeBSD.org
DeltaFile
+60-0graphics/nvidia-drm-latest-kmod/files/patch-nvidia-drm-helper.h
+60-0graphics/nvidia-drm-66-kmod/files/patch-nvidia-drm-helper.h
+60-0graphics/nvidia-drm-612-kmod/files/patch-nvidia-drm-helper.h
+60-0graphics/nvidia-drm-61-kmod/files/patch-nvidia-drm-helper.h
+60-0graphics/nvidia-drm-515-kmod/files/patch-nvidia-drm-helper.h
+54-0graphics/nvidia-drm-latest-kmod/files/patch-nvidia-drm-gem-nvkms-memory.c
+354-026 files not shown
+785-3332 files

LLVM/project 32ae6b5lldb/tools/lldb-mcp lldb-mcp.cpp CMakeLists.txt

[lldb-mcp] Link liblldb instead of the full initialization stack (#206852)

lldb-mcp linked liblldb but also pulled in lldbInitialization, which
drags in lldbCore and the entire plugin stack as a second, static copy
of LLDB alongside the dylib. It bootstrapped that copy through the
private SystemInitializerCommon.

lldb-mcp is a thin stdio proxy: it locates and forwards I/O to an lldb
subprocess and never creates a debugger. It only needs the FileSystem,
HostInfo, and Socket subsystems. Drop lldbInitialization, get the heavy
code from liblldb, and initialize just those subsystems directly (as
lldb-dap does) rather than via SystemInitializerCommon.

rdar://181054260
DeltaFile
+10-9lldb/tools/lldb-mcp/lldb-mcp.cpp
+1-1lldb/tools/lldb-mcp/CMakeLists.txt
+11-102 files

LLVM/project 87a09a0clang/include/clang/Options Options.td, clang/lib/Driver/ToolChains Clang.cpp

[clang][SYCL] Add -fsycl-device-image-split option (#206870)

Add the -fsycl-device-image-split= driver option to control how SYCL
device code is split into separate device images. Supported values:
    - kernel: one device image per SYCL kernel
    - translation_unit: one device image per translation unit
    - link_unit:        one device image per linking unit

The bare -fsycl-device-image-split flag is an alias for
-fsycl-device-image-split=translation_unit, which is also the default.

clang-sycl-linker module-split-mode option values were updated
accordingly to simplify options forwarding logic.

Co-Authored-By: Claude
DeltaFile
+31-0clang/test/Driver/sycl-offload-jit.cpp
+17-0clang/lib/Driver/ToolChains/Clang.cpp
+6-6clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
+6-6clang/test/OffloadTools/clang-sycl-linker/basic.ll
+10-0clang/include/clang/Options/Options.td
+4-4clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
+74-164 files not shown
+84-2010 files

LLVM/project a413409clang/lib/CodeGen CGHLSLBuiltins.cpp, clang/test/CodeGenHLSL/builtins InterlockedOr.hlsl

[HLSL][DXIL] InterlockedOr and InterlockedOr64 builtins (#180804)

This includes the first phase of implementation of the InterlockedOr
intrinsic. This covers the usage of the intrinsic/builtin on
RWByteAddressBuffers, Typed Buffers, and Structured Buffers. Not covered
are textures, groupshared memory, and the standalone
InterlockedOr(buf[index], val, ret) intrinsics.

SPIRV implementation is not covered in this commit.

Contributes to, but does not address
https://github.com/llvm/llvm-project/issues/99126
DeltaFile
+100-0clang/test/SemaHLSL/BuiltIns/InterlockedOr-errors.hlsl
+36-25clang/lib/CodeGen/CGHLSLBuiltins.cpp
+59-0clang/test/CodeGenHLSL/builtins/InterlockedOr.hlsl
+52-0llvm/test/CodeGen/DirectX/InterlockedOr.ll
+37-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/InterlockedOr_spv_i64.ll
+36-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/InterlockedOr.ll
+320-258 files not shown
+365-4314 files

LLVM/project e2eafd0clang/include/clang/ScalableStaticAnalysis/SourceTransformation TransformationReportFormat.h

fix build issue
DeltaFile
+2-0clang/include/clang/ScalableStaticAnalysis/SourceTransformation/TransformationReportFormat.h
+2-01 files

FreeBSD/ports 38eb060security/py-gvm-tools Makefile

security/py-gvm-tools: Fix build

Reported by:    pkg-fallout
DeltaFile
+2-1security/py-gvm-tools/Makefile
+2-11 files

LLVM/project 974650cclang/unittests/ScalableStaticAnalysis/SourceTransformation RegistryTest.cpp

fix clang-format
DeltaFile
+2-2clang/unittests/ScalableStaticAnalysis/SourceTransformation/RegistryTest.cpp
+2-21 files

LLVM/project 0a2fb2alldb/source/Core SourceManager.cpp, lldb/test/API/functionalities/breakpoint/default_source_file TestDefaultSourceFile.py main.cpp

[lldb] Find the default source file's main by base name (#207043)

SourceManager::GetDefaultFileAndLine locates the executable's main to
pick a default source file, used for input like "break set -l N" with no
file specified. It searched for main by full name, but a function's
linkage name can differ from its source name, in which case a full-name
search for "main" does not find it and no default file is chosen.

For example, wasi-libc renames main to __main_argc_argv, so on
WebAssembly the debug function for main was never matched and "break set
-l N" failed with "no default file available".

When we can't find "main", fall back to searching by base name.
DeltaFile
+27-0lldb/test/API/functionalities/breakpoint/default_source_file/TestDefaultSourceFile.py
+10-0lldb/test/API/functionalities/breakpoint/default_source_file/main.cpp
+9-0lldb/test/API/functionalities/breakpoint/default_source_file/other.cpp
+6-0lldb/source/Core/SourceManager.cpp
+3-0lldb/test/API/functionalities/breakpoint/default_source_file/Makefile
+55-05 files

LLVM/project 88a3488libc/src/__support/CPP string.h, libc/src/__support/OSUtil CMakeLists.txt

[libc][realpath] Implement symbolic path resolution (#204467)

This PR contains an incremental implementation of `realpath` that just
simplifies path traversals (e.g. `"/a/./../b"` -> `"/b"`). The complete
implementation would perform `getcwd`/`statx`/`readlinkat` to actually
resolve symlinks, validate paths, etc. This PR aims to add as much
functionality/error handling as possible without making any syscalls.

This implementation lives in `libc/src/stdlib/linux/`, since follow-on
PRs will rely on linux-specific syscalls. For testing purposes, I've
added the entrypoint for x86-64 linux when
`LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS` is enabled.

Follow-on PRs to add: path validation (e.g.
paths must exist), support for cwd-relative paths, and symlink
resolution.
DeltaFile
+201-0libc/src/stdlib/linux/realpath.cpp
+111-0libc/test/src/stdlib/realpath_test.cpp
+37-9libc/src/__support/CPP/string.h
+45-0libc/src/__support/OSUtil/linux/path.h
+28-1libc/test/src/__support/CPP/string_test.cpp
+19-10libc/src/__support/OSUtil/CMakeLists.txt
+441-2011 files not shown
+561-2417 files