[lldb][NativePDB] Don't loop forever on a procedure without an address (#238171)
When `ParseLineTable` walks the procedures of a compile unit to add the
line entries of their inline sites, it skipped a procedure whose segment
and offset don't map to a virtual address with `continue`, without
advancing the iterator, so the loop read the same `S_GPROC32` again
forever.
This patch skips to the end of the procedure's scope, as the loop does
for every other procedure.
rdar://191640721
[flang][OpenACC] Explain associate names rejected by ATTACH/DETACH (#238177)
An ATTACH or DETACH argument must have the POINTER or ALLOCATABLE
attribute. An ASSOCIATE or SELECT TYPE associate name has neither
attribute, even when its selector does (F2023 11.1.3.3), so this is
rejected:
```fortran
associate (p => obj%ptr)
!$acc enter data attach(p)
end associate
```
The error is correct. The associate name refers to the selector's
target, not to the pointer component, so an attach through it cannot
update the pointer in the device copy of `obj`. However, the existing
message does not say why, and the code looks plausible.
This patch attaches a note at the associate name when association is the
[24 lines not shown]
RuntimeLibcalls: Mark vector libcall out pointers dereferenceable
The whole vector width will be written, so mark the vector width. To
maintain the element width alignment for some functions, we need to
start explicitly tracking if the element alignment is used or not.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Declare vector libcall attributes in TableGen
Replace the type-based heuristics for vector math libcall attributes
with attributes declared on the libcall definitions, emitted with the
same attribute table helpers as intrinsics.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for vector stret libcalls
The vector modf, sincos and sincospi stret functions return a pair of
vectors, so describe them with a struct of two vectors.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for the divrem libcalls
Add struct types to the signature table so libcalls returning multiple
values can be described in TableGen. Use them for the ARM, Windows and
AVR divmod functions, which return the quotient and remainder in
registers, instead of building their types in C++.
The other divrem libcalls use the compiler-rt prototype, which stores
the remainder through a pointer. AVR gets its own __divmodsi4 and
__udivmodsi4, since ARM Darwin uses the compiler-rt functions with
those names.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for floating point comparison libcalls
The three-way and unordered comparisons return libgcc_cmp_return. This
is the word size with a few exceptions.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for half and bfloat conversion libcalls (#238242)
Fix missing type signatures for compiler-rt FP conversion functions.
__gnu_h2f_ieee and __gnu_f2h_ieee are special cases which take and
return the integer representations instead.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
NAS-144924 / 27.0.0 / Keep other writers off S3 bucket datasets (by Qubad786) (#20143)
## Problem
The truenas_s3 daemon protects its own objects (retained versions are
immutable) and refuses a bucket whose dataset was nested or moved, but
it leaves it to middleware to keep other shares and tasks from being
pointed at a BUCKET bucket's dataset. Middleware only checked a writer
whose own path was at or inside a bucket, and only on save, so it was
easy to point a writable share or task at a parent dataset by mistake,
and some path-based writers never ran the check. Renaming a dataset that
held a bucket also left the bucket row on the old name.
## Solution
These are best-effort guard rails against misconfiguration.
- **Writers above a bucket.** Writable shares and tasks whose writes
cross into child mounts, home directories and the anonymous FTP root are
refused on or above a bucket's dataset, on save and on enable. Creating
or recovering a bucket where such a writer already reaches it is refused
too, and rsync and cloud sync pulls re-check before each run.
[14 lines not shown]
[clang][OpenMP] Fix crash on a `pointer-to-member` access in a `map` clause (#238791)
Fixes #151542
`MapBaseChecker::VisitBinaryOperator` treated any pointer-typed binary
operator as pointer arithmetic and asserted that one operand has the
operator's type. `s->*mp` with `int *S::*mp` has operands `S *` and `int
*S::*`, so it fired; release builds silently used `mp` as the base, and
pointer-typed assignments or comma operators passed the same check.
The visitor now follows only `+`/`-` with a pointer result into the
pointer operand; anything else gets the existing `addressable-lvalue`
error and no component.
AI aided!
TableGen: Move attribute set and sequence table helpers to a header (#238226)
Move AttributeSetTable and AttributeSequenceTable out of
IntrinsicEmitter into a reusable header so the runtime libcall emitter
can use the same encoding.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
deskutils/copyq: Drop unneeded Qt translations dependency
The translations module only installs Qt's own localization files
and is not needed by this port.
Reported by: makc
MFH: 2026Q4
(cherry picked from commit 2084e58c38837c138bf269d1dd0b401546a6413b)
cp2112: Check status errors and bound I2C waits
A USB error during an I2C transfer can leave `cp2112(4)` blocked indefinitely,
preventing USB detach and even reboot from completing.
`cp2112iic_check_req_status()` uses the status response without checking whether
the exchange succeeded. A failed exchange can therefore reuse a stale busy
response and retry indefinitely. The output callback also records an error
without marking the transfer done, causing its waiter to sleep again.
Check the exchange result before using the response, and mark failed output
transfers complete. Use absolute deadlines based on `USB_DEFAULT_TIMEOUT`
(five seconds) for output and input condition-variable waits, and stop
repeated busy status responses after the status loop's own deadline.
Clear pending input state when the paired output request fails.
These are per-wait and status-loop bounds; they do not impose a
single five-second limit on the entire I2C operation.
Add `HQ_HID_IGNORE` entries for both VID/PID pairs matched by
[13 lines not shown]
[msan] Generalize verbatim arg handling of handleIntrinsicByApplyingToShadow() (#233014)
handleIntrinsicByApplyingToShadow() currently allows specifying that
there are N trailing verbatim arguments. This patch generalizes it to an
array of verbatim argument indices (with negative indices counting from
the end of the arguments, and non-negative indices counting from the
start), making it useful for a wider range of intrinsics.
All previous cases can be handled with this change:
- trailingVerbatimArgs = 0: verbatimArgIndices = {}
- trailingVerbatimArgs = 1: verbatimArgIndices = {-1}
- trailingVerbatimArgs = N: verbatimArgIndices = {-1, -2, ... -N}
The instrumented IR is byte-identical to prior to this patch.
graphics/heimer: Drop unneeded Qt translations dependency
The translations module only installs Qt's own localization files
and is not needed by this port.
Reported by: makc
MFH: 2026Q4
(cherry picked from commit fbcf23fb99396f36023c0de25439c510510c54d4)
devel/codequery: Drop unneeded Qt translations dependency
The translations module only installs Qt's own localization files
and is not needed by this port.
Reported by: makc
MFH: 2026Q4
(cherry picked from commit 0d1f14b19375b1cfdd0f3eab37d8a48bc12a8e50)
[ObjectYAML][MachO] Require IsLittleEndian (#238122)
yaml2obj defaults `IsLittleEndian` to the host's byte order, and
obj2yaml omits it when it matches the host, so YAML generated on a
little-endian machine builds different objects on big-endian ones.
That's what broke chained-fixups-arm64e.test on the AIX and s390x bots
(#238081).
Make `IsLittleEndian` required, like ELF's `Data`, and add
`IsLittleEndian: true` to all the Mach-O YAML that relied on the
default. This also lets chained-fixups-arm64e.test and
stmt-seq-macho.test drop their `sed` workarounds.
The functional change is in MachOYAML.cpp, with a new test in
missing-endianness.yaml. The other ~300 files just add the key.
Big-endian hosts now build these tests as little-endian, like every
other host.
Suggested in
[2 lines not shown]
devel/codequery: Add missing qt6-tools build dependency
CMake requires Qt6LinguistTools, which was previously pulled in
indirectly and is no longer available, breaking configure.
MFH: 2026Q4
(cherry picked from commit 96b350c794598768e257d1157d633973da8faead)
graphics/heimer: Add missing qt6-tools build dependency
CMake requires Qt6LinguistTools, which was previously pulled in
indirectly and is no longer available, breaking configure.
MFH: 2026Q4
(cherry picked from commit 0fb37d13e86c553f489658cbceea5fe7c931dbfd)
deskutils/copyq: Drop unneeded Qt translations dependency
The translations module only installs Qt's own localization files
and is not needed by this port.
Reported by: makc
MFH: 2026Q4
devel/codequery: Drop unneeded Qt translations dependency
The translations module only installs Qt's own localization files
and is not needed by this port.
Reported by: makc
MFH: 2026Q4
graphics/heimer: Drop unneeded Qt translations dependency
The translations module only installs Qt's own localization files
and is not needed by this port.
Reported by: makc
MFH: 2026Q4
[lldb][Fortran] Added support for functions to DWARFASTParserFortran (#234312)
Adds handling for the `DW_TAG_subprogram` and `DW_TAG_subroutine_type`
DWARF tags in ParseTypeFromDWARF as well as implementing the
ParseFunctionFromDWARF function, which is necessary for the `frame
variable` command to work.
**Changes:**
- Added handling for `DW_TAG_subprogram` and `DW_TAG_subroutine_type`,
parsing the tag and collecting information about the functions they
represent.
- Implemented `ParseFunctionFromDWARF` which is necessary for `frame
variable`.
- Tested function parsing with unit tests in
`DWARFASTParserFortranTests`.
Relates to #109119.
compiler-rt: Use int for the AMDGPU soft float comparison result (#238680)
We wouldn't want to use the pointer size as the word size.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Also require willreturn in determineFunctionCaptureCapabilities
determineFunctionCaptureCapabilities had the same shortcut for readonly
nounwind functions, without uses, and for those returning a different
argument. Require willreturn for both, so e.g. calls to readonly nounwind
declarations no longer imply captures(none).
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Attributor: Require willreturn to skip capture checks for readonly functions
AANoCapture assumed that a function which only reads memory, does not
unwind, and does not return a value cannot capture its arguments,
without looking at the uses. However, such a function can still capture
the address by whether it returns, e.g. by recursing forever if a pointer
is null. FunctionAttrs also requires willreturn for this.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>