mvc: ArrayField support nested fields in record sets
Flatten nested container fields for export and resolve them again on import, limited to the same one-level nesting supported by ArrayField::add().
feat: add PKG_EVENT_RC_SCRIPT for rc.d script actions
Introduce a dedicated event for rc script start/stop/restart, with
display in src/event.c and pipe JSON in libpkg/pkg_event.c.
Renamed internal PKG_RC_START/STOP to PKG_RC_ATTR_START/STOP to avoid
conflict with the new public pkg_rc_action_t enum.
[AMDGPU] Fold constants in 2-elt vector canonicalization (#214384)
For 2-element vectors convert:
`fcanonicalize (build_vector x, k)` -> `build_vector (fcanonicalize x),
(fcanonicalize k)`
`fcanonicalize (build_vector x, undef)` -> `build_vector (fcanonicalize
x), 0`
if fcanonicalize is Legal for a single element.
Previously only v2f16 was transformed. Now v2f32 and v2f64 are also
transformed, but v2f16 is naturally excluded.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
[libc++] Refactor `optional<T>` and `optional<T&>` base classes (#215012)
- Remove the shared `__optional_storage_base` base class and associated
partial specializations to handle the `T&` case in `optional<T>`
- As a consequence, the `static_assert`s that check for reference types
in `optional<T>` need to be moved up to the base class as the
`is_object_v` check is tripped, otherwise.
- Directly inline base class functions for both that used to exist to
accommodate a "dual-mode" (`T` and `T&`) `optional`.
resterm: Update to 0.52.1
This release ships many bug fixes and improvements across the parser, mocks, and RestermScript, along with two larger additions: mock request matching is far more expressive, and RestermScript now has a switch statement with labeled break and continue. One breaking change is included: the default(a, b) helper is gone and default is now a reserved word, so use the ? operator instead.
[LoopInfo] Do not enqueue unreachable nodes; fix infinite loop (#214832)
Before this patch, we were enqueing unreachable nodes reaching into the
latch nodes. Since unreachable nodes haven't been visited in the
original DFS algorithm, we end up in an infinite loop within enqueue
This patch restores isReachableFromEntry() check from now removed
discoverAndMapSubloop(). This should avoid infinite loop.
It's a regression from #212000
(5d582e4003b1cab59900d16fa3db9c3a9d16b462)
---------
Co-authored-by: Alexander Kornienko <alexfh at google.com>
Co-authored-by: Alexis Engelke <mail at aengelke.net>
[clang][ASTMatchers] Fix `hasArraySize` crash without a size expression (#215082)
CXXNewExpr::getArraySize() returns std::nullopt even when isArray() is
true, e.g. when there is no array size expression, as in 'new int[]()'.
The hasArraySize matcher dereferenced the optional unconditionally,
triggering undefined behavior (an assertion failure in assert-enabled
builds). Check the optional for engagement before matching.
Since getArraySize() already returns std::nullopt when isArray() is
false, the redundant isArray() check can be dropped.
Add a clang-tidy regression test that runs clang-tidy on a translation
unit containing 'new int[]()', which emits a compiler diagnostic but
must not crash the tool, and document the fix in the release notes.
Fixes #214281
x11/lightdm: Update to 1.33.0
- Download distribution using GITHUB
- Stop limiting portscout to even versions
- Add QT6 support option, alternative to QT5
- Remove upstreamed patches
- Fix vt multiseat support [1]
Many thanks to tijl for help and testing and finding solution for
[1], which was causing regressions with polkit integration.
Reviewed by: tijl
Tested by: tijl
[Flang][OpenMP] Add nsw flags to OMPIRBuilder loop IV arithmetic (#214165)
- Extended the support of `-fno-wrapv` flag setting from frontend to the
OMPIRBuilder via `omp.integer_wrap_around` module attribute.
- When this attribute `omp.integer_wrap_around` is false (-fno-wrapv),
the OMPIRBuilder attaches `nsw` to all loop IV arithmetic.
- This enables SCEV to form proper `AddRec` expressions for the loop IV,
allowing `IndVarSimplify pass` to widen it from i32 to i64 and eliminate
the in-loop sext instruction which helps some backend optimizations and
also producing IR similar to Clang.
Fixes https://github.com/llvm/llvm-project/issues/213718
[mlir][complex] Fix signed zero miscompile with complex.add fold (#212751)
The pattern `a + complex.constant<0.0, 0.0>` currently gets folded to
`a`. This is incorrect when e.g. `a=(-0.0, 1.0)` since as per the IEEE
spec and what's done in the arith dialect `0.0 + (-0.0) = 0.0 !=
(-0.0)`.
This PR changes the pattern to `a + complex<-0.0, -0.0> -> a` and
updates the associated test.
[flang][MIF] Update prif_coarray_handle in accordance with PRIF 0.8 #214080 (#214747)
In PRIF revision 0.8, the representation of `prif_coarray_handle` was
changed. This PR updates this representation for this type and updates
the MIFOpConversion pass for the relevant operations.
Fixes issue #214080
A minor fix has been made to the deallocation to ensure that, on the
Flang side, the variable is properly deallocated, since previously the
deallocation was only performed at the `coarray_handle` level.
(cherry picked from commit 066dfd519323589e89847e65a40d4a9836f61188)
[InstCombine] Fold X + ((-X) & (C - 1)) to (X + C - 1) & -C (#215122)
`X + ((-X) & (C - 1)) --> (X + C - 1) & -C` for power-of-two `C`.
This is the align-up idiom as allocators usually write it. `-C == ~(C -
1)`, so
the mask is just the inverted low-bit mask.
No wrapping flags needed - it verifies without nsw/nuw on either side.
Flags on
the original add are dropped.
The other fold in the issue, `X + (X | -X) --> X & (X - 1)`, already
exists in
visitAdd, so this only adds the second one.
One case that doesn't hit this: `C = 2`. InstCombine turns `(-X) & 1`
into
`X & 1` first, so the neg is already gone.
[3 lines not shown]
drm/amdkfd: hold event_mutex while checkpointing CRIU events
From William Palacek
6a52f48157fa7fb81e0c146937fd6c8b0c1cfdbd in linux-6.18.y/6.18.44
ff8bc5a68a9a70bdc38d61a72c7a49c56063f9d2 in mainline linux
drm/amdkfd: Handle invalid event type in CRIU event restore
From David Francis
6189ceca5ce75078743db456e133efbfa2dc6fce in linux-6.18.y/6.18.44
a9cdc85839e4fe2c760aa4ca6cc341c31ad1918a in mainline linux
drm/amdkfd: fix uint32_t overflow in EOP ring buffer size alignment
From William Palacek
6dc0b4b39ed4f11ef70f76ecea8537e35f45342b in linux-6.18.y/6.18.44
83463a96ea3c7d8ae636a4d6a0ba63c9ce410724 in mainline linux
drm/amdkfd: fix QID bit leak in pqm_create_queue()
From Vladimir Marioukhine
5f0f2ddeac738e2ca9d12cb76a1ff2904e85ecc3 in linux-6.18.y/6.18.44
38b73293f38658a4685ffcea666462024f858ad9 in mainline linux
drm/amdkfd: Fix missing authorization check in KFD_IOC_DBG_TRAP_DISABLE
From Gang Ba
9e52212aff8ed1fd9087728f61243ce3efd9d0ac in linux-6.18.y/6.18.44
99b2fe4f19e3be0a8d0a0b5ea98d855970889653 in mainline linux
[Support] Optimize ScaledNumbers::multiply64 (#215172)
The 128-bit product is assembled from four 32x32 cross products.
(4 imul on x86-64). Use `__uint128_t` where available.