LLVM/project dcf0f2flldb/tools/lldb-dap/extension/src lldb-dap-server.ts

[lldb-dap] Merge parent and user defined env when spawning server. (#213679)

The DAP server was spawned using only the user defined `options.env`,
which dropped the parent process's environment (e.g. PATH). Merge the
two, giving user-defined values priority on conflicts.

Fixes #159498
DeltaFile
+7-1lldb/tools/lldb-dap/extension/src/lldb-dap-server.ts
+7-11 files

LLVM/project f6ddf39mlir/lib/Dialect/ArmNeon/Transforms LowerContractToNeonPatterns.cpp, mlir/test/Dialect/ArmNeon lower-to-arm-neon.mlir

[mlir][ArmNeon] Reject masked contractions in `I8MM/BFMMLA` lowering patterns (#213698)

`LowerContractionToNeonI8MMPattern` and
`LowerContractionToNeonBFMMLAPattern` rewrite a `vector.contract` into
several ops (multiple `arm_neon.intr.smmla`/`bfmmla` calls plus
`extract/insert/shape_cast` scaffolding).

When the matched `vector.contract` sits inside a `vector.mask` (e.g.,
from vectorizing a matmul with dynamically-shaped operands), this
in-place multi-op rewrite violates `vector.mask`'s invariant that its
region contain exactly **one** operation, and the verifier rejects the
result: _error: 'vector.mask' op expects only one operation to mask_.

Neither pattern checked for masking, unlike the generic
contraction-lowering
patterns. To fix the problem, we bail out via `notifyMatchFailure` when
the contraction is masked, so it falls through to a different lowering
path instead of producing invalid IR.


    [5 lines not shown]
DeltaFile
+21-0mlir/test/Dialect/ArmNeon/lower-to-arm-neon.mlir
+6-0mlir/lib/Dialect/ArmNeon/Transforms/LowerContractToNeonPatterns.cpp
+27-02 files

LLVM/project 99f7018llvm/include/llvm/CodeGen Rematerializer.h, llvm/lib/CodeGen Rematerializer.cpp

[CodeGen] Add initial multi-def rematerialization support (#197580)

This significantly improves support for rematerializing registers with
more than one definition. In particular, this includes cases where
different lanes of a register are defined over multiple instructions.

There are still a few restrictions that can hopefully be relaxed in the
future.

- All defining instructions must be part of the same rematerialization
region.
- No pure user of the register (i.e., an MI that doesn't also defined a
part of the register) must read the register before its last definition.

These constraints ensure that the underlying DAG representation
maintained by the rematerializer is still valid, making this a
relatively incremental improvement.
DeltaFile
+306-128llvm/lib/CodeGen/Rematerializer.cpp
+231-23llvm/unittests/CodeGen/RematerializerTest.cpp
+70-40llvm/include/llvm/CodeGen/Rematerializer.h
+66-1llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+21-21llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
+6-6llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_copies.mir
+700-2191 files not shown
+701-2207 files

LLVM/project d2b5f5alibc/src/__support/FPUtil float80.h, libc/test/src/__support/FPUtil float80_test.cpp

feat: add tests
DeltaFile
+16-69libc/src/__support/FPUtil/float80.h
+59-0libc/test/src/__support/FPUtil/float80_test.cpp
+75-692 files

FreeNAS/freenas 4d3e8absrc/middlewared/middlewared/plugins alert.py, src/middlewared/middlewared/pytest/unit/alert test_applicability_matrix.py test_run_gates.py

Say which systems the enclosure alerts newly reach

This commit adds changes to test the failover run gates and to correct what the enclosure change was described as affecting. post_failover_blackout and require_stable_peer move out of the run loop into source_run_gates_pass so both can be checked without a middleware object or a running service, and a frozen inventory test pins which sources carry them and what each one is gated on.

failover_related was gating enclosure_status on an HA licence, which is a licensing predicate in front of a hardware question. Enclosure faults are now reported on every iX appliance that lacks an ENTERPRISE_HA licence, both unlicensed appliances and single controller licensed ones (ENTERPRISE_SINGLE, FREENAS-CERTIFIED). The earlier note said only "unlicensed appliances", which undercounts the fleet by the whole licensed single controller half. EnclosureHealthy is INFO and is raised once per enclosure, expansion shelves included, so affected systems will see several new informational alerts.

The matrix legend claimed a source row meant the source is ran, which was never true: it models applies_to only, and never post_failover_blackout, require_stable_peer, the schedule or source locks. That is the only change to the golden file.
DeltaFile
+151-0src/middlewared/middlewared/pytest/unit/alert/test_run_gates.py
+20-4src/middlewared/middlewared/plugins/alert.py
+3-1src/middlewared/middlewared/pytest/unit/alert/test_applicability_matrix.py
+3-1src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+177-64 files

FreeNAS/freenas e24ef08src/middlewared/middlewared/alert/applicability facts.py system.py, src/middlewared/middlewared/pytest/unit/alert test_applicability_system.py test_applicability_engine.py

Add an applicability engine for alerts

This commit adds changes to give alerts a way to state which systems they are meaningful on in terms of two independent axes, hardware class and license, instead of the conflated product_type predicate they lean on today. The engine is pure and delegates the HA question to the entitlement policy so there stays one definition of it in the tree.

Nothing declares the new applies_to/listed_when slots yet and no enforcement point reads them, so this is inert on its own; the declarations and the call sites follow.
DeltaFile
+88-0src/middlewared/middlewared/pytest/unit/alert/test_applicability_engine.py
+76-0src/middlewared/middlewared/alert/applicability/engine.py
+38-0src/middlewared/middlewared/alert/applicability/__init__.py
+36-0src/middlewared/middlewared/pytest/unit/alert/test_applicability_system.py
+26-0src/middlewared/middlewared/alert/applicability/system.py
+21-0src/middlewared/middlewared/alert/applicability/facts.py
+285-02 files not shown
+299-08 files

FreeNAS/freenas 1234097docs/source/middleware/plugins alert.rst

Document alert applicability and the frozen inventory

This commit adds changes to document the applicability axes and the frozen inventory in the alert plugin docs, since the only record of how to regenerate that file lived in the test module's own docstring and you only found it after CI had already failed. The populations are pulled in with automodule so a new one documents itself, and the page spells out what does and does not require a regeneration plus what each guard test means when it fails.
DeltaFile
+119-0docs/source/middleware/plugins/alert.rst
+119-01 files

FreeNAS/freenas 2b2b0e7src/middlewared/middlewared/alert/applicability __init__.py engine.py, src/middlewared/middlewared/plugins alert.py

Name alert applicability rules and detect black-holed alerts

This commit adds changes to give the alert applicability engine one name per population instead of thirty open-coded rule constructions, and to catch alerts that are created but can never be displayed.

The rules alert declarations gate on now live in a vocabulary module next to the engine, so TRUENAS_HARDWARE is defined once rather than built at eighteen sites in two competing conventions. LicenseRule collapses into EntitlementRule, which asks the entitlement policy about any feature rather than the two the old enum could spell, so STIG and everything after it is a one-line declaration. AllOf joins AnyOf in the algebra, listed_when becomes listed_only_when to say that it narrows, and AlertFacts is gone in favour of the identical EntitlementFacts that applies() was converting to anyway.

A source whose rule is satisfied where its class's rule is not creates alerts that are stored and never shown. Nothing checked for that, and since the failover declarations deliberately straddle the two axes it is no longer something a reviewer can spot by eye. A test now infers the source to class relation out of check() and asserts the implication across every population, with a runtime guard logging the cases static analysis cannot see. It found four pre-existing ones in memory_errors and sensors, which are fixed by narrowing the sources so nothing user visible moves.

One behaviour change worth a release note: failover_related was gating enclosure_status on an HA licence, which is a licensing predicate in front of a hardware question, so unlicensed appliances will now report enclosure faults they were previously silent about. The flag is renamed post_failover_blackout to name what it actually contributes.
DeltaFile
+106-40src/middlewared/middlewared/pytest/unit/alert/test_applicability_matrix.py
+68-35src/middlewared/middlewared/alert/applicability/engine.py
+63-35src/middlewared/middlewared/plugins/alert.py
+89-0src/middlewared/middlewared/pytest/unit/alert/test_alert_black_holes.py
+48-29src/middlewared/middlewared/pytest/unit/alert/test_applicability_engine.py
+48-23src/middlewared/middlewared/alert/applicability/__init__.py
+422-16230 files not shown
+605-38936 files

FreeNAS/freenas b7fd556src/middlewared/middlewared/alert base.py, src/middlewared/middlewared/alert/applicability __init__.py snapshot.py

Type alert applicability against AlertSource and AlertClass

This commit adds changes to drop the Declaration protocols in favour of TYPE_CHECKING imports of AlertSource and AlertClass, which is what review asked for, and to tighten the surface while we are in there: rule_name is no longer re-exported now that declaration_rule_name is the only entry point production goes through, and the Rule docstring keeps just the part that constrains how you write one, which is to name it so the black-hole diagnostic has something to report.

Dropping the protocols makes alert.applicability depend on alert.base, and import-linter counts TYPE_CHECKING imports, so that broke the package layering contract: engine reached vocabulary and snapshot through alert.base importing the whole package. alert/base.py now takes Rule from the engine module directly, which is the only thing it ever wanted, and the contract holds without an ignore.
DeltaFile
+10-19src/middlewared/middlewared/alert/applicability/engine.py
+12-7src/middlewared/middlewared/alert/applicability/snapshot.py
+3-11src/middlewared/middlewared/alert/applicability/__init__.py
+2-2src/middlewared/middlewared/pytest/unit/alert/test_run_gates.py
+1-1src/middlewared/middlewared/pytest/unit/alert/test_applicability_engine.py
+1-1src/middlewared/middlewared/alert/base.py
+29-416 files

FreeNAS/freenas e322c89src/middlewared/middlewared/alert base.py, src/middlewared/middlewared/alert/source jbof.py failover.py

Remove the product_type gate from alerts

This commit adds changes to delete `products` from every alert declaration now that the hardware and license axes carry the gating, along with the `product_types` field it fed in `alert.list_categories` and the unused `AlertService.product_type` helper. The applicability matrix loses its old-versus-new comparison and becomes a frozen inventory of what each declaration covers; the declared answers are unchanged from the previous commit, cell for cell.

The API field is removed outright rather than deprecated because nothing consumes it - it exists in no earlier API version and has no client in the WebUI, api_client or midcli, so the downgrade adapter's strip loop is already a no-op here. Forward-porting this to master will need a `to_previous` on `AlertCategoryClass`, because there v26_0_0 is frozen with the field required and the version adapter only backfills fields that are not required.
DeltaFile
+362-362src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+57-63src/middlewared/middlewared/pytest/unit/alert/test_applicability_matrix.py
+0-10src/middlewared/middlewared/alert/source/mseries_nvdimm_and_bios.py
+1-7src/middlewared/middlewared/alert/base.py
+0-7src/middlewared/middlewared/alert/source/failover.py
+0-6src/middlewared/middlewared/alert/source/jbof.py
+420-45520 files not shown
+422-52126 files

FreeNAS/freenas 52229d9src/middlewared/middlewared/alert/source license_status.py

Only report a missing license on HA capable systems

This commit fixes an issue where an unlicensed R-series or Z-series started getting told to contact support about a license it was never sold. Those chassis are appliances so they satisfy the hardware rule, but they cannot fail over, and on 26 the product_type disjunct meant a system with no license only reached this alert when it was HA capable. HA capability is a chassis probe the applicability axes deliberately do not carry, so the test sits in check_sync rather than in applies_to.
DeltaFile
+3-0src/middlewared/middlewared/alert/source/license_status.py
+3-01 files

FreeNAS/freenas 1b75cadsrc/middlewared/middlewared/alert/source fips.py, src/middlewared/middlewared/pytest/unit/alert/golden applicability.txt

Keep the FIPS misconfiguration alert on licensed Minis and whiteboxes

This commit fixes an issue where the FIPS misconfiguration alert stopped running on licensed Minis and licensed whiteboxes even though those systems can still enable FIPS: the STIG vector is key-only on both hardware sides and STIG is injected into every legacy licence, so they are entitled while TRUENAS_HARDWARE excluded them by construction.

EXPECTED_TO_BE_LICENSED is a strict superset of both the old product_type gate and the hardware gate, so nothing loses coverage, unlicensed appliances keep the check that catches FIPS being active when it was never configured, and licensed whiteboxes that could never see this alert are now covered too.
DeltaFile
+2-2src/middlewared/middlewared/alert/source/fips.py
+1-1src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+3-32 files

FreeNAS/freenas dac66dfsrc/middlewared/middlewared/alert/source security.py, src/middlewared/middlewared/pytest/unit/alert/golden applicability.txt

Run the local account expiration alert everywhere

This commit fixes an issue where the local account expiration alert stopped running on Minis even though they can still turn on password aging: max_password_age sits behind the STIG entitlement, whose vector grants on the key column of either hardware side, and that key is injected into every legacy licence. The source is also the admin lockout recovery, since it regenerates shadow a day before the last full admin password ages out, so excluding a system that can arm password aging leaves it with no way back in short of a reboot.

check() already returns early unless max_password_age is set, so that early return is the applicability test and the rule is dropped rather than widened. On a system that cannot set the option the daily cost is one config read.
DeltaFile
+1-2src/middlewared/middlewared/alert/source/security.py
+1-1src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+2-32 files

FreeNAS/freenas bf2ea14src/middlewared/middlewared/alert/source sata_dom_wear.py, src/middlewared/middlewared/pytest/unit/alert/golden applicability.txt

Remove the broken SATA DOM wear alert

This commit adds changes to delete the SATA DOM wear alert source and its two classes. The source calls disk.sata_dom_lifetime_left, which was removed in 25.10 and has no implementation anywhere, so it raises on every run on any M or Z series chassis and produces nothing but alert source failures.

Alerts already persisted on existing systems clear on the next start through the stale source check in initialize, which runs before the policies are built, so nothing is announced as cleared. No migration is needed, matching how every previous alert source removal was handled.
DeltaFile
+0-55src/middlewared/middlewared/alert/source/sata_dom_wear.py
+0-5src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+0-602 files

FreeNAS/freenas 97b7a85src/middlewared/middlewared/alert/applicability __init__.py vocabulary.py, src/middlewared/middlewared/alert/source memory_errors.py

Keep uncorrected memory error alerts on Minis

This commit fixes an issue where the uncorrected memory error alert stopped running on Minis even though they carry ECC memory and populate the same EDAC counters the source reads. TRUENAS_HARDWARE excludes MINI by construction, so a licensed Mini lost a proactive support warning it used to get, and any alert it was already sitting on was purged on upgrade without a cleared notification.

TRUENAS_OR_MINI_HARDWARE is the union of the two hardware names, composed from them rather than defined as "not GENERIC" so a hardware class added later has to be added here deliberately. MemorySizeMismatch stays on TRUENAS_HARDWARE because its own check returns early without an HA licence.
DeltaFile
+9-0src/middlewared/middlewared/alert/applicability/vocabulary.py
+3-3src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+3-3src/middlewared/middlewared/alert/source/memory_errors.py
+2-0src/middlewared/middlewared/pytest/unit/alert/test_applicability_engine.py
+2-0src/middlewared/middlewared/alert/applicability/__init__.py
+19-65 files

FreeNAS/freenas e9e50f6src/middlewared/middlewared/alert/applicability snapshot.py vocabulary.py, src/middlewared/middlewared/plugins alert.py

Express alert applicability rules as functions and cache them once

This commit adds changes to replace the applicability rule dataclasses with plain functions that take facts, and to route every applicability answer through a single Applicability object holding one reading of those facts and memoizing per declaration. Nothing in the tree ever introspected rule structure, so the isinstance dispatch and the AnyOf/AllOf combinators go away with it, and because the seven vocabulary names are unchanged no alert declaration moves and the golden matrix is byte for byte identical.

The five separate get_facts() reads in the alert plugin become one, invalidated on system.post_license_update so an upload takes effect on both nodes at once. A None license is never cached, since get_license() returns None both for "no license" and "the daemon did not answer" and we do not want a hiccup to stick until restart.
DeltaFile
+152-66src/middlewared/middlewared/pytest/unit/alert/test_applicability_engine.py
+191-0src/middlewared/middlewared/pytest/unit/alert/test_alert_plugin_applicability.py
+33-72src/middlewared/middlewared/alert/applicability/engine.py
+62-28src/middlewared/middlewared/plugins/alert.py
+43-28src/middlewared/middlewared/alert/applicability/vocabulary.py
+62-0src/middlewared/middlewared/alert/applicability/snapshot.py
+543-1945 files not shown
+615-23611 files

FreeNAS/freenas ad43c46src/middlewared/middlewared/alert/source failover_sync.py mseries_nvdimm_and_bios.py, src/middlewared/middlewared/plugins alert.py

Move alert gating onto hardware and license axes

This commit adds changes to give every declaration under alert/source its own applicability rule on the decoupled hardware and license axes, and points the enforcement sites in plugins/alert.py at those rules instead of system.product_type. The products lines stay for now because the API field still reads them. HA classes take a hardware applies_to alongside listed_when on purpose, so on iX hardware whose HA licence is absent or lapsed they leave the settings catalogue without being silenced, and a source that no longer applies now has its stored alerts dropped rather than stranding them undismissable. The two scheduled-reboot classes are the exception: they are gated on the HA licence itself, so a system without one stops seeing them at all.

sata_dom_wear is knowingly shipped in a broken state: its source calls disk.sata_dom_lifetime_left, which was removed in March 2025, so appliances will see the check fail. That is a deliberate, signed-off decision and not an oversight.

The checked-in matrix under pytest/unit/alert/golden spells out old versus new applicability per population for every declaration, and its test regenerates and diffs it so no population change lands unread.
DeltaFile
+377-0src/middlewared/middlewared/pytest/unit/alert/golden/applicability.txt
+266-0src/middlewared/middlewared/pytest/unit/alert/test_applicability_matrix.py
+34-16src/middlewared/middlewared/plugins/alert.py
+16-0src/middlewared/middlewared/alert/source/failover.py
+13-0src/middlewared/middlewared/alert/source/mseries_nvdimm_and_bios.py
+11-0src/middlewared/middlewared/alert/source/failover_sync.py
+717-1619 files not shown
+836-1625 files

FreeBSD/ports 26a43cblang/seed7 Makefile distinfo

lang/seed7: update to 05_20260711

Changes: https://github.com/ThomasMertes/seed7/releases/tag/Seed7_release_2026-07-11
DeltaFile
+7-1lang/seed7/pkg-plist
+3-3lang/seed7/distinfo
+1-1lang/seed7/Makefile
+11-53 files

LLVM/project 328ef15lldb/include/lldb/Target Target.h RegisterTypeBuilder.h, lldb/source/Core DumpRegisterValue.cpp

[lldb] Refactor RegisterTypeBuilder

This prepares it for emitting union types. Major changes:
* Entry function is now a dispatcher to builder functions for each type.
* Name mangling is standardised.
* The register name parameter is no longer needed and so was removed.
DeltaFile
+107-86lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
+12-3lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.h
+2-4lldb/source/Target/Target.cpp
+2-3lldb/include/lldb/Target/Target.h
+2-3lldb/include/lldb/Target/RegisterTypeBuilder.h
+2-2lldb/source/Core/DumpRegisterValue.cpp
+127-1016 files

LLVM/project 855082clldb/source/Plugins/Process/FreeBSD NativeRegisterContextFreeBSD_arm64.cpp, lldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.cpp

[lldb] Make RegisterFlagsDetector into RegisterTypesDetector

In future it may be generating things other than flags. Functionality
is the same, but the interface changes to use RegisterType.
DeltaFile
+348-0lldb/source/Plugins/Process/Utility/RegisterTypeDetector_arm64.cpp
+0-334lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
+0-101lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
+99-0lldb/source/Plugins/Process/Utility/RegisterTypeDetector_arm64.h
+9-9lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+7-7lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
+463-4513 files not shown
+472-4609 files

LLVM/project 7a96475lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp, lldb/test/API/functionalities/gdb_remote_client TestXMLRegisterFlags.py

Add test for ID overlap
DeltaFile
+44-0lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
+2-2lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+46-22 files

LLVM/project 98704f5lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp, lldb/test/API/functionalities/gdb_remote_client TestXMLRegisterFlags.py

use first instance of duplicated ID
DeltaFile
+19-8lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+3-4lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
+22-122 files

LLVM/project 14a5b52lldb/include/lldb/Utility RegisterType.h RegisterTypeFlags.h, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.h ProcessGDBRemote.cpp

[lldb] Store all XML register types in a single string map

We are assuming that their ID's are unique, so there's no need to keep
separate maps. We can do basic type checking by checking the kind of
the type pointed to.

A few more methods were added to the base RegisterType. GetSize()
returns 0 for enums because enums don't have a size until they are
used by a register. This is not ideal but it works for now.
DeltaFile
+64-70lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+7-8lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+11-3lldb/include/lldb/Utility/RegisterTypeFlags.h
+6-0lldb/include/lldb/Utility/RegisterType.h
+2-2lldb/source/Utility/RegisterTypeFlags.cpp
+90-835 files

LLVM/project 510241dlldb/include/lldb/Core DumpRegisterInfo.h, lldb/source/Core DumpRegisterInfo.cpp DumpRegisterValue.cpp

[lldb] Convert uses of RegisterTypeFlags into RegisterType (#213886)

So we are using the generic interface that will work with
all future RegisterType derived classes.

Right now we'll only be asked to print RegisterTypeFlags, so
there's a few dyn_cast to that. Later we will switch on the
kind, and support rendering more types.
DeltaFile
+16-12lldb/source/Core/DumpRegisterValue.cpp
+9-3lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
+4-5lldb/source/Core/DumpRegisterInfo.cpp
+6-2lldb/unittests/Core/DumpRegisterInfoTest.cpp
+3-2lldb/source/Target/Target.cpp
+2-2lldb/include/lldb/Core/DumpRegisterInfo.h
+40-268 files not shown
+48-3414 files

LLVM/project e122990clang/lib/Frontend CompilerInvocation.cpp, clang/lib/Sema SemaDecl.cpp

[Clang][AIX] Error on -mloadtime-comment-vars in cc1 for non-AIX targets

The driver continues to warn and drop the option for unsupported targets;
cc1, reachable directly or via -Xclang, now rejects it with
err_drv_unsupported_opt_for_target, mirroring the -mabi=quadword-atomics
and -mxcoff-roptr checks.
DeltaFile
+4-19clang/test/CodeGen/PowerPC/loadtime-comment-vars.c
+6-6clang/test/Sema/loadtime-comment-vars.c
+6-0clang/lib/Frontend/CompilerInvocation.cpp
+0-5clang/lib/Sema/SemaDecl.cpp
+16-304 files

LLVM/project bd74981libc/test/src/stdio sprintf_test.cpp

[libc] Fix two issues in sprintf_test after #213860 (#214435)

PR #213860 enabled the test on GPU targets (which only runs hermetic
tests), exposing two issues.

The first one is passing "pointer" values as `int`s. On AMDGPU, this
produced garbage in the high bits of the printed value, presumably the
result of reading a short `int` as a (longer) `void *`. On other this
probably worked because the value is passed in a register, which
(implicitly) zeroes out high bits. I fix this by casting the argument to
a `uintptr_t`.

The second error is a crash in the wide char test. I restore status quo
by disabling that part of the test, but I've filed #214433 to figure out
a long term solution.
DeltaFile
+15-8libc/test/src/stdio/sprintf_test.cpp
+15-81 files

LLVM/project abdef49lldb/include/lldb/Target Target.h RegisterTypeBuilder.h, lldb/source/Core DumpRegisterValue.cpp

[lldb] Refactor RegisterTypeBuilder

This prepares it for emitting union types. Major changes:
* Entry function is now a dispatcher to builder functions for each type.
* Name mangling is standardised.
* The register name parameter is no longer needed and so was removed.
DeltaFile
+107-86lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
+12-3lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.h
+2-4lldb/source/Target/Target.cpp
+2-3lldb/include/lldb/Target/Target.h
+2-3lldb/include/lldb/Target/RegisterTypeBuilder.h
+2-2lldb/source/Core/DumpRegisterValue.cpp
+127-1016 files

LLVM/project a9b8e51lldb/source/Plugins/Process/FreeBSD NativeRegisterContextFreeBSD_arm64.cpp, lldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.cpp

[lldb] Make RegisterFlagsDetector into RegisterTypesDetector

In future it may be generating things other than flags. Functionality
is the same, but the interface changes to use RegisterType.
DeltaFile
+348-0lldb/source/Plugins/Process/Utility/RegisterTypeDetector_arm64.cpp
+0-334lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
+0-101lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
+99-0lldb/source/Plugins/Process/Utility/RegisterTypeDetector_arm64.h
+9-9lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+7-7lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
+463-4513 files not shown
+472-4609 files

LLVM/project 90a3d00lldb/include/lldb/Utility RegisterType.h RegisterTypeFlags.h, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.h ProcessGDBRemote.cpp

[lldb] Store all XML register types in a single string map

We are assuming that their ID's are unique, so there's no need to keep
separate maps. We can do basic type checking by checking the kind of
the type pointed to.

A few more methods were added to the base RegisterType. GetSize()
returns 0 for enums because enums don't have a size until they are
used by a register. This is not ideal but it works for now.
DeltaFile
+64-70lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+7-8lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+11-3lldb/include/lldb/Utility/RegisterTypeFlags.h
+6-0lldb/include/lldb/Utility/RegisterType.h
+2-2lldb/source/Utility/RegisterTypeFlags.cpp
+90-835 files

LLVM/project 2e7e848lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp, lldb/test/API/functionalities/gdb_remote_client TestXMLRegisterFlags.py

use first instance of duplicated ID
DeltaFile
+19-8lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+3-4lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
+22-122 files