[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[lldb] Convert uses of RegisterTypeFlags into RegisterType
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.
games/CWR-CE: fix build on armv7
- disabled pre-compiled headers to work around a long-standing clang bug
- apply sse2neon workaround to arm, too
- fix assumption of size_t being 64 bits in a hash calculation
- improve architecture name reporting
See also: https://github.com/llvm/llvm-project/issues/69524
Approved by: portmgr (build fix blanket)
MFH: 2026Q3
(cherry picked from commit 319393265d592e3bd5b422959190a12bd4e02033)
games/CWR-CE: fix build on powerpc64le
In file included from /wrkdirs/usr/ports/games/CWR-CE/work/CWR-CE-9abbdf2769f3008d76c47ac0af219388ff0323dc/engine/Poseidon/Foundation/Math/V3QuadsP3.cpp:16:
/usr/lib/clang/19/include/ppc_wrappers/x86intrin.h:18:2: error: "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
18 | #error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
| ^
(cherry picked from commit 1b44bb905fa6afe491ddbeb82495684af6a85bc6)
[libc++] Implement LWG2899: Constrain move special functions of `tuple` and `unique_ptr` (#167211)
libc++'s `tuple`'s move constructor is well-constrained when initially
implemented. So this patch only adds test cases.
For `unique_ptr`, its move constructor and move assignment operator were
previously unconstrained and thus this patch changes them. There doesn't
seem "obviously correct" approach for constraining in pre-C++20 modes,
and this patch attempts to use `__nat` trick to avoid turning the
functions into templates which are not move special functions.
Some tests case are adjusted because false positive of
move-assignability of `unique_ptr` is reduced. Comments are updated to
reflect that move-constructibility is not actually required for
`unique_ptr`'s deleter.
This patch also explicitly deletes copy functions of `unique_ptr` in all
modes. Previously, they are implicitly deleted since C++11 mode,
although the standard wording always explicitly deletes them. Clang
[9 lines not shown]
multimedia/mkvtoolnix: fix build on armv7, builds fine on aarch64
Pre-compiled headers are broken on arm.
Also enable on aarch64, where this port builds fine.
Approved by: portmgr (build fix blanket)
MFH: 2026Q3
See also: https://github.com/llvm/llvm-project/issues/69524
games/CWR-CE: fix build on armv7
- disabled pre-compiled headers to work around a long-standing clang bug
- apply sse2neon workaround to arm, too
- fix assumption of size_t being 64 bits in a hash calculation
- improve architecture name reporting
See also: https://github.com/llvm/llvm-project/issues/69524
Approved by: portmgr (build fix blanket)
MFH: 2026Q3