LLVM/project 4b0b8cbllvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize runtime-check-small-bounded-ranges.ll debugloc.ll

[LV] Add vplan folds for urem(X, PowerOf2) -> and(X, PowerOf2 - 1) (#212198)

In this PR I've added support for the vplan fold:

  urem(X, Y) -> and(X, Y - 1)

when Y is a power of 2. This should reduce the cost of the urem and
ensure the vplan is accurately costed. Such a change would normally
affect over 300 test files due to this being a common pattern in the
vector preheader. For now, I've limited the scope to only simplifying
occurences that are not in the vector preheader. In a follow-on PR I
will extend this to add support for

  sub(X, urem(X, Y)) -> and(X, -Y)

as well permitting folds in the preheader.
DeltaFile
+37-37llvm/test/Transforms/LoopVectorize/bounded-load-predicated.ll
+67-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-fold-dbg.ll
+0-46llvm/test/Transforms/LoopVectorize/debugloc.ll
+15-15llvm/test/Transforms/LoopVectorize/AArch64/bounded-load.ll
+11-11llvm/test/Transforms/LoopVectorize/runtime-check-small-bounded-ranges.ll
+9-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+139-1096 files not shown
+152-12212 files

LLVM/project 293d7c5llvm/include/llvm/IR IntrinsicsAArch64.td

  [AArch64][SME]Refine memory effects for SME load/store intrinsics. (#205525)

Split SME load/store intrinsic definitions so loads and stores model
ArgMem, ZA, and ZT0 effects separately. Also mark ZA enable/disable as
     side-effecting intrinsics with no memory access.
DeltaFile
+41-32llvm/include/llvm/IR/IntrinsicsAArch64.td
+41-321 files

LLVM/project 24d2a96llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-unmerge-values.mir legalize-extract-vector-elt.mir

GlobalISel: Fix floating point unmerge lowering (#213703)

Bitcast to integer and use integer type for bit twiddling.
DeltaFile
+332-4llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
+126-188llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
+5-4llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
+5-1llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+468-1974 files

LLVM/project a44620dlibcxxabi .clang-tidy, libcxxabi/src/demangle ItaniumDemangle.h

[libc++abi][NFC] Enable modernize-loop-convert clang-tidy check (#213250)
DeltaFile
+2-2llvm/include/llvm/Demangle/ItaniumDemangle.h
+2-2libcxxabi/src/demangle/ItaniumDemangle.h
+1-1libcxxabi/.clang-tidy
+5-53 files

LLVM/project 62ec1d0libcxxabi .clang-tidy, libcxxabi/src private_typeinfo.h

[libc++abi][NFC] Enable modernize-use-override clang-tidy check (#213253)
DeltaFile
+35-52libcxxabi/src/private_typeinfo.h
+1-1libcxxabi/.clang-tidy
+36-532 files

LLVM/project 77cc702llvm/include/llvm/CodeGen/GlobalISel LegalizationArtifactCombiner.h, llvm/test/CodeGen/AMDGPU/GlobalISel extractelement.ll fshr.ll

GlobalISel: Add type size guards in tryCombineMergeLike (#213702)

Bug in LegalizationArtifactCombiner when:
DstSize < UnmergeSrcSize case can create unmerge with one element.
DstSize > UnmergeSrcSize case can end up attempting to create merge
with one source element and hits assert(TmpVec.size() > 1).
DeltaFile
+222-6llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
+55-23llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+55-23llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
+35-4llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
+8-3llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
+375-595 files

LLVM/project ec6de6dllvm/include/llvm/CodeGen/GlobalISel LegalizationArtifactCombiner.h, llvm/test/CodeGen/AMDGPU/GlobalISel extractelement.ll fshr.ll

GlobalISel: Add type size guards in tryCombineMergeLike

Bug in LegalizationArtifactCombiner when:
DstSize < UnmergeSrcSize case can create unmerge with one element.
DstSize > UnmergeSrcSize case can end up attempting to create merge
with one source element and hits assert(TmpVec.size() > 1).
DeltaFile
+222-6llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
+55-23llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+55-23llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
+35-4llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
+8-3llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
+375-595 files

LLVM/project 7e37653llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-unmerge-values.mir legalize-extract-vector-elt.mir

GlobalISel: Fix floating point unmerge lowering

Bitcast to integer and use integer type for bit twiddling.
DeltaFile
+332-4llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
+126-188llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
+5-4llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
+5-1llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+468-1974 files

LLVM/project 27e6d83llvm/test/CodeGen/AMDGPU/GlobalISel legalize-unmerge-values.mir legalize-extract-vector-elt.mir

AMDGPU/GlobalISel: Precommit tests for upcoming bug fix (#213701)

Here we have:
artifact combiner creating one element unmerge and
unmerge lowering of FP source using FP type for bit twiddling.
DeltaFile
+23-0llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
+21-0llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
+44-02 files

LLVM/project 6339d8b.github/workflows test-suite.yml

[GitHub] Use base repository to fetch test merge commit in test-suite workflow (#213871)

From time to time we'll fail to fetch the test merge commit during the
checkout step, e.g. see
https://github.com/llvm/llvm-project/actions/runs/30626469894/job/91931527829

After a bit of research apparently the test merge commit is actually
stored on the base repository, not the fork. I think this just happened
to work previously because the fork repository synced objects in the
background, but it's not always guaranteed to be available.

So switch the checkout step to use llvm/llvm-project as the remote.
DeltaFile
+2-1.github/workflows/test-suite.yml
+2-11 files

OpenBSD/ports HGx17pWnet/nmap Makefile

   mirror distfile
VersionDeltaFile
1.157+2-1net/nmap/Makefile
+2-11 files

DragonFlyBSD/src fac5240lib/libfetch http.c

libfetch: Fix GCC 12.5's -Wstringop-overread.

Taken-from: FreeBSD (57fbafb8deac75b924faf1fa6c2222a7719fdfec)
DeltaFile
+3-2lib/libfetch/http.c
+3-21 files

OpenBSD/src 09NZYojusr.sbin/bgpd bgpd.h util.c

   Incorporate new RTR v2 error codes from draft-ietf-sidrops-8210bis-26

   RTR v2 introduces additional error codes:

    9: ASPA Provider List Error (fatal): The received ASPA PDU has an
       incorrect list of Provider Autonomous System Numbers.
   10: Transport Error (fatal): An error such as a stall or other transport
       layer failure occurred.
   11: Ordering Error (fatal): The received PDU does not conform with the
       specification defined ordering.
   12: Cache Restart (non-fatal): The cache is restarting.
   13: Cache Shutdown (fatal): The cache has shut down deliberately.

   OK claudio@
VersionDeltaFile
1.55+19-4usr.sbin/bgpd/rtr_proto.c
1.104+11-1usr.sbin/bgpd/util.c
1.547+6-1usr.sbin/bgpd/bgpd.h
+36-63 files

OPNSense/core ef82e60src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api NetflowController.php

diagnostics/netflow: stop service before reloading configuration
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/NetflowController.php
+1-11 files

FreeNAS/freenas a5503a7src/middlewared/middlewared/pytest/unit/utils/zfs test_guard.py test_no_second_registry.py, src/middlewared/middlewared/utils/zfs managed_datasets.py

Consolidate the managed-dataset registries and guard every mutator

## Problem

"Is this a dataset middleware manages?" was answered by five separate registries with four membership sets and no shared matching rule: `INTERNAL_PATHS` in `plugins/zfs/utils.py`, `INTERNAL_DATASETS` in `plugins/pool_/dataset_query_utils.py`, `internal_datasets_filters` in `plugins/pool_/dataset.py`, inline literals in `alert/source/datasets.py`, and `INVALID_DATASETS` in `plugins/zettarepl.py`. None had unit coverage, and they had drifted: `<pool>/ix-applications` was creatable and then permanently invisible because one carried a trailing slash the others lacked, and the replication registry did not know about the apps datasets at all. A sixth spelling in `docker/fs_manage.py` tested `startswith("boot-pool/")`, which misses `freenas-boot` entirely and also misses the bare string `boot-pool` -- so whenever the boot pool's own root dataset was what sat at the apps mountpoint, it was reported as the mounted apps dataset.

Two of the five matched by substring, which is the cheapest way to spell "is under" in a filter DSL and not a matching policy anyone chose. It confiscated names the user is entitled to. `<pool>/ix-apps-data` is a user dataset that merely starts with a managed name, and `<pool>/.systembackup` is what a competent admin would call a backup of the system dataset; both were hidden from `pool.dataset.query` forever, which left them unmanageable, since the lookups behind `get_instance`, `update` and `delete` all run through that listing. The same reach refused their creation and dropped their ZFS events. Nothing middleware creates lives at those names: `.system`, `ix-apps`, `ix-applications` and `.truenas_containers` are literals created at a fixed depth of one below the pool root, so everything a substring caught beyond that was, by construction, someone else's dataset.

"May this caller change it?" was answered by a `bypass` field on the snapshot request models and by `exclude_internal_paths` on `ZFSResourceQuery`. Both are `Private`, which the API layer already refuses from the wire, so neither was reachable by a caller. `exclude_internal_datasets` was the exception, and a real one: it was read out of `pool.dataset.query`'s free-form `extra` dict, where the model's `extra="forbid"` never reaches, because that governs unknown model fields rather than keys inside a dict value. Anyone holding `DATASET_READ` could set it and enumerate the boot pool, the system dataset and the apps datasets.

Separately, eleven public entry points had no protection at all and none of them funnelled through a guarded implementation: `pool.dataset.promote`, `rename`, `set_quota`, `get_quota`, `lock`, `change_key` and `inherit_parent_encryption_properties`, the three `zfs.tier` mutators, and `pool.snapshot.rename`. Ten of those mutate; `get_quota` only reads, but it reported the quota accounting of datasets that are not part of the user-facing surface. `promote` was the worst of them, since managed children are frequently clones and promoting one reparents its origin snapshot. `pool.snapshot.rename` turned out to be unreachable in any case: it passed a snapshot id to `zfs.resource.rename`, which rejects any name containing `@`, so the endpoint could not succeed for any valid input and had no test coverage.

The same whole-component test was also being asked about snapshots. `zfs.resource.snapshot.query` and `zfs.resource.snapshot.count` fed it names like `tank/.system at snap`, where the suffix lands on the component being compared, so the answer came back False for exactly the shapes the filter existed for. The per-snapshot filter and the opt-out that turns it off were both dead for the `.system` and apps snapshot names, and the count's direct-snapshot branch consulted neither. Nothing leaked, because a working dataset-level check filters the parent before any snapshot below it is reached. That is the problem rather than the reassurance: it leaves a dead guard sitting behind a live one, with nothing to fail if the live one is ever moved or dropped as redundant.

## Solution

- **One module, one predicate per question.** `utils/zfs/managed_datasets.py` replaces all five registries, with one function per caller decision -- `hidden_from_zfs_listing`, `hidden_from_snapshot_listing`, `hidden_from_dataset_listing`, `blocked_from_mutation`, `excluded_from_zfs_events`, `excluded_from_replication` -- each spelling out its own membership where you can read it against the rule at once. One rule covers everything: compare the component directly below the pool root against a name, exactly, which matches that dataset and everything under it the way ZFS's own name algebra does. The boot pools are a separate disjunct, because they are matched at component zero instead. `hidden_from_snapshot_listing` is the one predicate with no rule of its own -- it drops a snapshot suffix and asks `hidden_from_zfs_listing`, the way `deny_protected_snapshot` does for `deny_protected_path`. The refusal helpers `deny_protected_path` and `deny_protected_snapshot` sit in the same file directly beneath the predicate they gate, so answering "is this ours?" and "may this caller change it?" is one place to look rather than two files to choose between, and they replace the hand-rolled `if not bypass and has_internal_path(...)` that every call site previously spelled out for itself, snapshot-suffix stripping included. Callers that must accumulate into `ValidationErrors` mid-pass, or that want to name the containing dataset rather than the path they were handed, ask the predicate directly; the helpers are a convenience for the one common message shape, not a boundary.

- **The rule is shared; the membership carries the divergence.** Every predicate matches the same way, so where two of them disagree it is because they manage a different set of names, and that is product policy you can read in one line. The apps datasets are deliberately left out of the replication membership, which means replication offers them, because replication is the supported way to back them up. `.truenas_containers` takes part in the product listing only, reproducing today's behaviour while containers are addressed separately; that leaves it destroyable through `zfs.resource.destroy` while `pool.dataset.delete` answers ENOENT, which is written down rather than quietly fixed. The event view stays narrower than the product listing for the same reason -- a container dataset is hidden from the listing but its destruction still has to be published, or the cleanup never runs.

    [12 lines not shown]
DeltaFile
+468-0tests/api2/test_internal_dataset_protection.py
+368-0src/middlewared/middlewared/pytest/unit/utils/zfs/test_managed_datasets.py
+316-0src/middlewared/middlewared/pytest/unit/utils/zfs/test_no_second_registry.py
+211-0src/middlewared/middlewared/pytest/unit/utils/zfs/test_guard.py
+182-0src/middlewared/middlewared/utils/zfs/managed_datasets.py
+137-0tests/api2/test_zfs_tier_protected_path.py
+1,682-032 files not shown
+1,987-21538 files

LLVM/project ad04652flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP allocate-clause-allocator.f90

[flang][OpenMP] Lower allocator-backed storage for allocate clauses (#211621)

Part of #211620.

This is the first of two stacked changes implementing OpenMP `allocate`
clause lowering for fixed-size intrinsic scalar `private` and
`firstprivate` items on host `omp.parallel`.

It carries each allocate item’s private-storage mapping through the
OpenMP dialect, allocates with the requested allocator (using the
runtime default for an omitted or null handle), and releases the storage
during region finalization.

The `align` modifier is handled by the stacked follow-up.

Assisted-by: Copilot
DeltaFile
+203-0mlir/test/Target/LLVMIR/openmp-allocate-clause.mlir
+154-40mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+137-0flang/test/Lower/OpenMP/allocate-clause-allocator.f90
+86-5mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+82-0mlir/test/Dialect/OpenMP/invalid.mlir
+71-0flang/lib/Lower/OpenMP/OpenMP.cpp
+733-4512 files not shown
+884-11218 files

LLVM/project 20a2329lldb/source/Plugins/ObjectContainer/Mach-O-Fileset ObjectContainerMachOFileset.cpp, lldb/source/Plugins/ObjectFile/Mach-O ObjectFileMachO.cpp

[lldb][Mach-O] Fix load-command loops spinning on cmdsize = 0 (#205134)

Every function in `ObjectFileMachO` and `ObjectContainerMachOFileset`
that iterates over load commands advances the file offset by
`lc.cmdsize` after reading each command.  A malformed command with
cmdsize smaller than `sizeof(load_command)` (in particular cmdsize = 0)
does not make forward progress, so the loop spins for ncmds iterations.
With `ncmds` close to `INT_MAX` the function never returns in practice.

Factor the read-and-validate step into a static template helper
`ReadMachOCommand<T>` in each plugin's translation unit.  It reads the
8-byte cmd/cmdsize header and returns false on EOF or on a cmdsize that
is too small to make forward progress.  All load-command loops now use
this helper, replacing the previously duplicated GetU32 + cmdsize
check.  `T` may be `llvm::MachO::load_command` or any of its richer
variants (uuid_command, dylib_command, thread_command, ident_command,
encryption_info_command, ...).   The helper only touches the leading
cmd/cmdsize fields, leaving the rest of `T` for the caller to fill in.


    [15 lines not shown]
DeltaFile
+39-14lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+43-0lldb/unittests/ObjectContainer/ObjectContainerUniversalMachOTest.cpp
+36-0lldb/unittests/ObjectFile/MachO/TestObjectFileMachO.cpp
+26-1lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.cpp
+1-0lldb/unittests/ObjectContainer/CMakeLists.txt
+145-155 files

DragonFlyBSD/src 7e7c534contrib/ncurses/ncurses/base lib_screen.c

Merge branch 'vendor/NCURSES'
DeltaFile
+1-1contrib/ncurses/ncurses/base/lib_screen.c
+1-11 files

DragonFlyBSD/src 333ea1fusr.sbin/installer/dfuibe_installer fn_install.c

installer: Fix GCC 12's -Waddress in world. cp_src[i] is never NULL.
DeltaFile
+3-3usr.sbin/installer/dfuibe_installer/fn_install.c
+3-31 files

DragonFlyBSD/src dc79421contrib/ncurses/ncurses/base lib_screen.c

vendor/ncurses: Add a trailing nul for magic-string in putwin.

This was flagged by GCC 12.5's -Wstringop-overread.

Patch is from upstream, therefore fixing on the vendor branch.
DeltaFile
+1-1contrib/ncurses/ncurses/base/lib_screen.c
+1-11 files

FreeBSD/ports d4d3192filesystems/tclvfs Makefile

filesystems/tclvfs: add PORTEPOCH

The last version bump went back in time, 1.5.0 < 20080503_1.
While at it, use tabs instead of spaces after variable names.
DeltaFile
+5-4filesystems/tclvfs/Makefile
+5-41 files

NetBSD/src fTA6Rhqlib/libcurses refresh.c color.c

   * Avoid calling assume_default_colors because this in turn, calls
     _change_pair which dirties lines resulting in a blank screen iff
     stdsrc is not being used.
   * Restore line dirtying code to __change_pair since makech() no longer
     indirectly calls it.
VersionDeltaFile
1.50+7-13lib/libcurses/color.c
1.136+2-8lib/libcurses/refresh.c
+9-212 files

LLVM/project 72f3474llvm/test/CodeGen/AArch64/GlobalISel form-bitfield-extract-from-shr-and.mir artifact-find-value.mir

[AArch64][GlobalISel] Update a batch of tests to concrete types. NFC (#213851)
DeltaFile
+373-373llvm/test/CodeGen/AArch64/GlobalISel/merge-stores-truncating.mir
+272-272llvm/test/CodeGen/AArch64/GlobalISel/lower-neon-vector-fcmp.mir
+187-181llvm/test/CodeGen/AArch64/GlobalISel/arm64-regbankselect.mir
+152-152llvm/test/CodeGen/AArch64/GlobalISel/machine-cse-mid-pipeline.mir
+151-151llvm/test/CodeGen/AArch64/GlobalISel/artifact-find-value.mir
+125-125llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-shr-and.mir
+1,260-1,25418 files not shown
+1,638-1,61624 files

LLVM/project 98fa52bclang/lib/CodeGen CGOpenMPRuntime.cpp, clang/test/OpenMP target_map_nested_ptr_member_mapper_codegen.cpp

[OpenMP][NFC] Align pointee-entry terminology with HasAttachPtr docs

Drop the "pointee (attach-ptr) entries" phrasing in favor of the wording
already used by the landed HasAttachPtr documentation: name the flag
("entries with HasAttachPtr") where the comment sits next to a
HasAttachPtr/hasAttachPtr() test, and use plain "pointee entries" in
prose.

"attach-ptr entries" reads as the entries for the attach pointer itself,
which is exactly the case HasAttachPtr excludes -- it is false on the
ATTACH entry and on an entry mapping the pointer as an object in its own
right, and true only for the pointee storage reached through that ptr.

Comments only; no functional change.
DeltaFile
+7-5llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+6-5clang/lib/CodeGen/CGOpenMPRuntime.cpp
+1-1clang/test/OpenMP/target_map_nested_ptr_member_mapper_codegen.cpp
+14-113 files

LLVM/project 35355f5flang/docs FlangDriver.md, flang/include/flang/Tools CrossToolHelpers.h

[flang] Add HLFIR-to-FIR pass pipeline extension points

The FIR optimizer extension points (FIROptEarly, FIRInliner, FIROptLast) all
run after HLFIR has been lowered to FIR, so the HLFIR intrinsic operations
(hlfir.sum, hlfir.matmul, ...) are gone by the time they run. Transformations
that need to see those operations have nowhere to attach.

Add two extension points to createHLFIRToFIRPassPipeline:

  * HLFIROptEarly, at the start of the pipeline, before any HLFIR
    simplification or inlining.
  * HLFIROptLast, just before createLowerHLFIRIntrinsics.

Drivers register passes through registerHLFIROptEarlyEPCallbacks and
registerHLFIROptLastEPCallbacks on MLIRToLLVMPassPipelineConfig. The invoke
methods are const so they can be called on the const config the HLFIR pipeline
receives. With no callbacks registered the pipeline is unchanged.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+141-0flang/unittests/Optimizer/HLFIRExtensionPointsTest.cpp
+33-0flang/include/flang/Tools/CrossToolHelpers.h
+24-0flang/docs/FlangDriver.md
+8-0flang/lib/Optimizer/Passes/Pipelines.cpp
+2-0flang/unittests/Optimizer/CMakeLists.txt
+208-05 files

LLVM/project f1dde54flang/tools/fir-opt CMakeLists.txt

[flang] Export fir-opt symbols for MLIR dialect/pass plugins (#212152)

Lets plugins loaded with --load-dialect-plugin / --load-pass-plugin
resolve
MLIR and LLVM symbols against fir-opt, as mlir-opt already does.

---------

Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
DeltaFile
+6-1flang/tools/fir-opt/CMakeLists.txt
+6-11 files

OPNSense/core a70c67fsrc/opnsense/mvc/app/views/layout_partials base_bootgrid_table.volt, src/opnsense/www/css opnsense-bootgrid-layout.css

ui: tabulator: Add _showMaximized() modal that can show a grid close to full screen
DeltaFile
+58-0src/opnsense/www/js/opnsense_bootgrid.js
+24-0src/opnsense/www/css/opnsense-bootgrid-layout.css
+16-0src/opnsense/mvc/app/views/layout_partials/base_bootgrid_table.volt
+98-03 files

LLVM/project de15318llvm/lib/ProfileData InstrProf.cpp, llvm/lib/Transforms/Instrumentation CGProfile.cpp

[CGProfile] Fix unhandled error crash on empty canonical function names (#201821)

A function whose entire name is a strippable suffix canonicalizes to an
empty name, making InstrProfSymtab::create return an error

The current solution with `(void)(bool)` does not really suppress the
error which leads to the crash
DeltaFile
+9-0llvm/test/Instrumentation/cgprofile-empty-canonical-name.ll
+2-2llvm/lib/ProfileData/InstrProf.cpp
+1-1llvm/lib/Transforms/Instrumentation/CGProfile.cpp
+12-33 files

LLVM/project 8f53e52libc/src/errno CMakeLists.txt program_invocation_name.cpp, libc/test/integration/startup/linux invocation_name_test.cpp

[libc] Add program_invocation(_short)_name and tweak err.h functions (#212448)

These GNU extensions hold the name of the program as invoked (argv[0])
and its short name (the basename after the last slash).

Both variables are initialized in the startup code. As with all of our
other variables, they are only available in full build mode.

The trickiest part of this patch are the error reporting functions from
<err.h>, which access this variable, and they are currently enabled in
overlay mode. To make them work, I add an #ifdef to select the right
version. I considered doing something more elaborate, like we have with
`errno`, but that seemed too heavy for a single occurrence.

I also drop the linux check in this function. The documentation says the
functions should print the "last component of the program name", which
"llvmlibc" is not. If someone wants to enable these functions on
non-linux, they can figure out what they want to print here and how.

Assisted by Gemini.
DeltaFile
+140-0libc/test/integration/startup/linux/invocation_name_test.cpp
+25-0libc/src/errno/program_invocation_name.h
+25-0libc/src/errno/program_invocation_short_name.h
+23-0libc/src/errno/program_invocation_name.cpp
+23-0libc/src/errno/program_invocation_short_name.cpp
+22-0libc/src/errno/CMakeLists.txt
+258-010 files not shown
+315-1616 files

FreeBSD/ports 3d8efbddevel/gwm Makefile Makefile.crates

devel/gwm: Update to 1.6.0
DeltaFile
+157-189devel/gwm/distinfo
+77-93devel/gwm/Makefile.crates
+1-1devel/gwm/Makefile
+235-2833 files