[libc] Assorted improvements to [gs]etitimer (#206974)
This started out as a patch adding a syscall wrapper for the two
functions. It still does that, but along the way I (or rather AI)
discovered an edge case in the truncation of microsecond values, where
we could turn bogus values into seemingly valid ones by throwing away
the high-order bits.
Additionally, when writing a test case, I noticed that the (64-bit)
kernel returns EINVAL for these out-or-range values. Our check returns
EOVERFLOW in this case, so I also change our error code in order to
provide an uniform behavior for the test case.
Neither of these (the check and the EINVAL error code) are present in
glibc (which lets truncated usec values through and returns EOVERFLOW on
second truncation), but I think it's better to be consistent with the
64-bit behavior. The EOVERFLOW error also has no foundation in POSIX
whereas EINVAL is mentioned as an error for invalid microseconds.
[4 lines not shown]
[Clang][OpenMP] Fix `if` clause not affecting `teams` construct on host (#207444)
In #205345, it was discovered that the `if` clause for the `teams`
construct
does not actually create a serial league when the code is built with
Clang.
Looking at the emitted IR, no call to `__kmpc_push_num_teams` was added
for an `if` clause. Hence, `__kmpc_fork_teams` always created the number
of
teams specified via the `num_teams` clause, or the _nteams-var_ ICV.
During `emitCommonOMPTeamsDirective`, only the `num_teams` and
`thread_limit`
clauses were checked, whereas the `if` clause was missing.
To fix the missing code, check for an `if` clause mapped to `teams` or
`unknown`. If the clause is present, and false, emit
`__kmpc_push_num_teams`
with the number of teams set to 1. The `thread_limit` clause is
unaffected.
[21 lines not shown]
[libc++] Rename the macro for the LLVM 18 ABI tag used in ranges (#208464)
We typically use macros like _LIBCPP_ABI_XYZ for ABI settings that can
be configured by the user. Since _LIBCPP_ABI_LLVM18_NO_UNIQUE_ADDRESS is
not one of those, rename it to make it clearer it's an ABI tag
attribute.
As a drive-by remove the definition in the frozen C++03 config header
since it should never be needed (Ranges are not provided in C++03).
[lldb][test] Add a new test for integer types (#208441)
This is a new modern test for integer types that replaces the test logic
from `API/types` test that is about to be deleted.
See also #208402
assisted-by: claude
[VPlan] Remove FoldTail argument for createConsecutiveVecPtr (NFC). (#208550)
The argument is no longer needed now that we can look up the information
directly from VPlan.
[HLSL] Implement RWTexture2D (#208267)
Add HLSL front-end support for RWTexture2D and related test cases.
Where appropriate test cases have been parameterized across the
Texture2D types (and redundant Texture2DArray tests removed).
Assisted by Cursor
Fixes: #194742
---------
Co-authored-by: Tim Corringham <tcorring at amd.com>
[Clang] Switch to Default PIE on FreeBSD
We have started to compile the binary in our base as PIE by defualt. It
makes sense to compile the binary to PIE by default in toolchain as
Linux now. Also, extended testcases to support default PIE and no-pie
parameter in freebsd-pie.c, freebsd-mips-as-pie.c and hip-fpie-option-freebsd.hip.
lang/go125: Update to 1.25.12
Changes:
go1.25.12 (released 2026-07-07) includes security fixes to the
crypto/tls and os packages, as well as bug fixes to the compiler, the
go command, and the net and os packages.
MFH: 2026Q3
Reviewed by: adamw
Differential Revision: https://reviews.freebsd.org/D58111
(cherry picked from commit ad07846e079b7cab4167daaf2bbd9a1cd35f8603)
lang/go126: Update to 1.26.5
Changes:
go1.26.5 (released 2026-07-07) includes security fixes to the
crypto/tls and os packages, as well as bug fixes to the compiler, the
runtime, the go command, and the net, os, and syscall packages.
MFH: 2026Q3
Reviewed by: adamw
Differential Revision: https://reviews.freebsd.org/D58112
(cherry picked from commit 2ca64d7d9babf5e87f07fb85261f499f67ae5e1c)
PR bin/58577 - install(1) -d issues
Fix issues where "install -d" (with no directory) simply
exit(0)s. That one is kind of marginal, installing nothing
when nothing is needed could be treated as OK, but the man
page does indicate in the SYNOPSIS that with -d, at least
one directory is needed (it says nothing at all about that
in the text).
Second, after creating a directory, if a later operation
(chown, chmod) fails, that is not success, a warning was
issued (good), a bad metalog was being created (bad).
That is clearly a bug (though probably doesn't happen
very often).
And third, when install -d fails, and issues an error,
(warn()) the exit status from install(1) should not be zero.
This only applies after the (rare, I'd assume) errors
from the 2nd fix (which were not previously regarded as
[22 lines not shown]
[AMDGPU] Employ MemorySSA when rewriting out arguments (NFCI) (#207922)
While transitioning away from MemoryDependenceAnalysis, replace MDA
`getPointerDependencyFrom` query with a reverse traversal of the memory
accesses of the return basic block (MemoryDefs and MemoryUses), looking
for the must-aliasing store to the out argument. The existing behaviour
is meant to be preserved.