[LLDB] fix lldb breg adress width (#216291)
`DW_OP_breg0..31` and `DW_OP_bregx` preserved the scalar width supplied
by the register backend and added their displacement as a `uint64_t`. On
32-bit targets this could leave a 64-bit value on the expression stack,
so later generic address arithmetic did not wrap at the target address
size.
Perform the register-plus-offset calculation using the evaluator's
address-sized generic representation. This keeps `DW_OP_breg*` results
at the target address width without changing shared register reading or
the generic
operand compatibility rule.
Add unit tests for both compact and extended breg opcodes. They cover a
32-bit register value, a backend-provided 64-bit register value on i386,
a negative displacement, and modulo-32-bit overflow.
Fixes #209728
Merge tag 'input-for-v7.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov:
- A couple of fixes to the sur40 touchscreen driver to correct
registration and teardown ordering, and to fix error path
unwinding when video device registration fails.
* tag 'input-for-v7.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: sur40 - fix V4L error path cleanup
Input: sur40 - fix input device registration ordering
[DirectX] Add support for heap resources to `DXILResourceMap`.
- `DXILResourceMap` now handles a new `llvm.dx.resource.handlefromheap` intrisics
and adds the heap resources to the resource map.
- A new member `HeapResourceID` has been added to `ResourceInfo` to distinguish
between heap resource instances created from different indices. The `HeapResourceID`
is unique for each heap index `Value*`, so multiple handle creation calls using
the same index `Value*` resolve to the same resource.
- Heap resources do not have register bindings, so the `Binding` member
on `ResourceInfo` is now optional.
- All places that were always expecting binding are updated to handle
heap resources. In most cases that means skipping them, such as when
generating DXIL resource metadata, creating PSV resource entries or
pretty-printing the resource table comment for the module disassembly
output.
[2 lines not shown]
[ELF] Prevent .eh_frame_hdr size oscillation in address assignment (#216248)
When .eh_frame_hdr size shifts, section addresses can change whether
FDEs evaluate to identical PC-relative offsets, causing FDE
deduplication count to toggle and section size to oscillate infinitely
between passes.
Prevent .eh_frame_hdr from shrinking during iterative address assignment
passes (matching .relr.dyn) to ensure monotonic convergence.
[NFC][DirectX] Rename ResourceInfo::RecordID to BindingID (#216376)
Rename `ResourceInfo::RecordID` to `BindingID` to better reflect its
purpose. This field is set only for resources with an associated
binding. This also clarifies the distinction from the upcoming
`HeapResourceID` member, which will identify resources originating from
a heap. The existing `RecordID` name could be ambiguous once both
identifiers are present.
The change also removes the `RecordID` argument from the `ResourceIfo`
constructor because it has always been called with `0` value. The
`BindingID` is set later via `setBindingID` after all resource instances
are collected.
Mk/Uses/npm.mk: Add new variable NPM_PREFETCH_ARCHS
A node modules archive created by the prefetch function may vary
depending on the architecture, especially if the archive contains
architecture-specific node modules.
This variable can be used to indicate which architectures the node
modules archives are prepared for.
If you prepared the archives for amd64 and aarch64 architecutres,
specify:
NPM_PREFETCH_ARCHS= aarch64 amd64
Mk/Uses/npm.mk: Add new variable NPM_PREFETCH_ARCHS
A node modules archive created by the prefetch function may vary
depending on the architecture, especially if the archive contains
architecture-specific node modules.
This variable can be used to indicate which architectures the node
modules archives are prepared for.
If you prepared the archives for amd64 and aarch64 architecutres,
specify:
NPM_PREFETCH_ARCHS= aarch64 amd64
[clangd][clang-tidy] Factor out mergeFixits() logic and reuse it in clangd (#208682)
This patch extracts `mergeFixits()` from `DiagnosticRenderer` to
`clang::edit` and reuses it in clangd. This prevents syntax errors
caused by token merging when applying clang-tidy fixits via clangd.
Fixes #207618