[Sema] Fix ICE when passing vector types to `abs` (#205017)
fix for ICE in `Sema::CheckAbsoluteValueFunction`
We failed to reject non-scalar types.
Fixes: #204777
[lldb][Mach-O] Bounds-check GetArchitectureAtIndex against m_fat_archs (#205289)
`ObjectContainerUniversalMachO::GetArchitectureAtIndex` used
`m_header.nfat_arch` (read directly from the file and untrusted, up to
0xFFFFFFFF) as the bound before indexing `m_fat_archs`. When ParseHeader
exhausts the data partway through and breaks early, `m_fat_archs.size()`
can be smaller than `nfat_arch`, so the indexed load is out of bounds.
Bound the check on the actual vector size instead.
Found by lldb-target-fuzzer.
---------
Co-authored-by: Alex Langford <nirvashtzero at gmail.com>
[flang][cmake] Enable the runtimes in the CMake caches (#205642)
I've tried to introduce that in the PR #198863, but sadly, the buildbots
could not cope with this, so I decided to introduce it separately.
This patch also fixes the relevant places in the docs.
[APInt] Consistently use the terms pdep/pext instead of expandBits/compressBits (#205112)
After some bikeshedding in #200570 - we decided on the terms pdep/pext
[AssumptionCache] Fix removeAffectedValues() when value is repeated in AssumeInst (#205275)
If a value appears more than once in an AssumeInst (e.g., `ptr %arg1` in
`call void @llvm.assume(i1 true) [ "dereferenceable"(ptr %arg1, i64 1),
"align"(ptr %arg1, i64 8) ]`) it will appear multiple times in the
result of findAffectedValues(). removeAffectedValues() may (depending on
how the results in AffectedValues.find_as(AV.Assume) are ordered),
nullify multiple values from AffectedValues.find_as(AV.Assume) in one
iteration of an outer for loop. The next iteration of that outer for
loop might then find a match only to a different AssumeInst, resulting
in an assertion failure.
This patch fixes the issue by counting the number of matching
ResultElems we expect to find.
This was a latent bug that was revealed by
https://github.com/llvm/llvm-project/pull/204432; the latter is not
itself buggy, but relies on AssumptionCache::removeAffectedValues().
[2 lines not shown]
[OpenMP][Offload] Use argument pointer array in host kernels (#205355)
This is a follow-up to #194333, which changed liboffload's kernel launch
interface to take an array of pointers to arguments instead of a
contiguous argument buffer, but left the old path intact for OpenMP, to
be cleaned up iteratively in later changes.
This patch modifies the offload host kernels, and the OpenMP clang
codegen, to also use argument pointer arrays. The host was the only
plugin that did not support the new submission path. With it converted,
OpenMP can migrate to use the new path in all scenarios, after which
everything related to contiguous argument buffer and its construction
can be removed from plugin interface and the backends.
The change itself is fairly straightforward. The bulk of the diff is
automated test updates. In the runtime, the host kernel signature
becomes an array of pointers (void **), and the codegen is updated to
match. With each argument being a pointer, the kernel function now adds
one load to read the argument's value.
Assisted-by: Claude
NAS-141411 / 26.0.0-RC.1 / Relax special class vdev consistency validation (by anodos325) (#19199)
This commit relaxes the consistency checks for vdev types used in
special vdevs. Doing a mix-and-match topology is considered to be a
deviation generally from best practice, but as long as the administrator
is careful to make sure they don't spread it too wide (for example,
mirror + 5-wide RAIDZ1) then the impact should be relatively minor.
Allowing this is generally a loaded foot-gun for administrators since
the topology changes cannot be undone once they are committed; and if
they run into performance issues related to the imbalanced topology then
they may have little recourse to fix the issues. It is generally best
for users to follow best practices as defined by the support /
engineering teams, but we are relaxing in this case to allow more user /
product flexibility.
Original PR: https://github.com/truenas/middleware/pull/19142
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
[mlir][bazel]: only depend on needed LLVM translations in ExecutionEngine (#205619)
ExecutionEngine currently pulls in `AllToLLVMIRTranslations` which
includes heavy dependencies on GPU dialects (notably NVVMDialect.cpp
which takes a whopping 2 minutes to compile!), despite the
ExecutionEngine not doing anything GPU-specific.
This change reduces the dependencies to just the subset of LLVMIR
translations that ExecutionEngine actually uses: Builtin, LLVM dialect,
and OpenMP dialect.
clang: Replace getTargetID API with isProcessorName (#205653)
The "target ID" naming is an AMDGPUism. Replace the getTargetID query
with an isProcessorName predicate so the target reports whether the
string should be considered a match. This makes alias handling more
natural than checking for exact match, and avoids an unnecessary
parse of the target ID.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
[lldb] Remove unused MemorySize methods (NFC) (#205463)
These `MemorySize` methods are unused. There are two remaining which are
used: `FileSpec::MemorySize` and `ConstString::MemorySize`.
NAS-141411 / 27.0.0-BETA.1 / Relax special class vdev consistency validation (#19142)
This commit relaxes the consistency checks for vdev types used in
special vdevs. Doing a mix-and-match topology is considered to be a
deviation generally from best practice, but as long as the administrator
is careful to make sure they don't spread it too wide (for example,
mirror + 5-wide RAIDZ1) then the impact should be relatively minor.
Allowing this is generally a loaded foot-gun for administrators since
the topology changes cannot be undone once they are committed; and if
they run into performance issues related to the imbalanced topology then
they may have little recourse to fix the issues. It is generally best
for users to follow best practices as defined by the support /
engineering teams, but we are relaxing in this case to allow more user /
product flexibility.
(cherry picked from commit 733bc02b83383fd4a80bdb30837ae9185f08a2fb)
[LV] Round outer-loop VPlan VF down to a power of two (#205646)
computeVPlanOuterloopVF computes the VF as max(1, RegSize / WidestType).
WidestType may not be a power of two, which resulted in a non-power-of-2
VF. Round down like in the inner loop path.
[flang] Relax ignore_tkr(c) for assumed-type BIND(C) descriptor dummies (#205445)
Relax `F2023 15.5.2.5 p2` derived-type checks for assumed-type
ignore_tkr(c) dummies passed by descriptor to bind(C) procedures. This
will allow passing a derived type with a type-bound procedure or FINAL
or a parameterized derived type to a TYPE(*), dimension(..) bind(C)
dummy.
Update devel/objfw to 1.5.6
Changes from ObjFW 1.5.5:
* Unpaired UTF-16 surrogates are now converted to WTF-8
* Collections now refuse to be inserted into themselves
* Fixes OFMutableData dropping the itemSize in one convenience initializer
* Fixes OFFileIRIHandler setting the UID to the GID
* Fixes handling of BOM in -[OFUTF8String initWithUTF8StringNoCopy:length:freeWhenDone:]
* OFMutableIndexSet now correctly inserts / removes from self
* OFMutableUTF8String now correctly appends and replaces self
* Fixes handling of TLS close notifications
* Fixes relocking the mutex in OFCondition on Windows
* Fixes searching for a handler after a cleanup in the runtime
* Fixes parsing JSON containing an exponent without a decimal point
* Call va_end() after va_copy() everywhere
* Default depth limit of all parsers increased from 32 to 128
* -[OFIRI fileSystemRepresentation] now rejects IRIs with a non-empty host, except on Windows where it is used for UNC
* Fixes setting a nil extraField in OFMutableZIPArchiveEntry
* Fixes setting a nil Amiga comment in OFMutableTarArchiveEntry
[4 lines not shown]
python: switch default to 3.12
Thanks everyone for the collective patience and effort.
While here, slightly rearrange the order such that pre-release is
after all extant supported branches but before 2.7.
PR: 285957
exp-runs by: antoine
Event: FreeBSD Developer Summit June 2026
Event: BSDCan 2026
Event: Halifax Hackathon 202606
NAS-141411 / 27.0.0-BETA.1 / Relax special class vdev consistency validation (#19142)
This commit relaxes the consistency checks for vdev types used in
special vdevs. Doing a mix-and-match topology is considered to be a
deviation generally from best practice, but as long as the administrator
is careful to make sure they don't spread it too wide (for example,
mirror + 5-wide RAIDZ1) then the impact should be relatively minor.
Allowing this is generally a loaded foot-gun for administrators since
the topology changes cannot be undone once they are committed; and if
they run into performance issues related to the imbalanced topology then
they may have little recourse to fix the issues. It is generally best
for users to follow best practices as defined by the support /
engineering teams, but we are relaxing in this case to allow more user /
product flexibility.
[SLP][NFC] Remove extra checks from analyzeRtStrideCandidate() (#205415)
These checks duplicate the functionality of the additional checks added
in #204013