gpioled: defer gpio pin writes to a taskqueue
led(4) invoked the led_t callback with its mutex held, including from the
blink callout, so the callback must not sleep.
PR: 251032
MFC After: 1 week
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D59263
efl: backport upstream patch
Backport existing eet upstream patch.
Already upstreamed as part of pull request:
https://git.enlightenment.org/enlightenment/efl/pulls/130
While not mandatory for building efl,
all existing patches closely follow OpenBSD logic,
thefore adding this to pkgsrc as well.
mount_lfs: Build fix: s/unreachable()/__unreachable()/
<stddef.h> only declares unreachable() for C23 or later.
Here, as <sys/cdefs.h> is already being included, just
use one of its definitions directly, rather than attempting
to do so indirectly via <stddef.h>
This can be changed to anything else that works of course.
[lld][WebAssembly] Do not coalesce segments with differing flags in -r (#219606)
In PR #210747 (commit 162d9f09299d), `addInputSegment` was changed to
union segment linking flags (`linkingFlags |= inSeg->flags`) so that
flags like `RETAIN` and `STRINGS` are preserved in `--relocatable`
output.
However, coalescing segments with differing linking flags by name alone
forces one chunk's semantics onto another:
- Clang emits ordinary string literals (`STRINGS`) and string literals
containing embedded null characters (non-`STRINGS`) into sections
named `.rodata..L.str`. When coalesced, non-mergeable segments
received the `STRINGS` flag, causing downstream links to split and
corrupt them.
- Similarly, coalescing a chunk with `RETAIN` and a chunk without
`RETAIN` forces the un-retained chunk to inherit `RETAIN`, preventing
`--gc-sections` from discarding it if it is unused.
Fix this by distinguishing segments by their linking flags in
[3 lines not shown]
[clang][Parse] Stop parsing declarator chunks after a parenthesized structured binding (#219270)
Fixes #218144
Fixes #193687
`ParseDirectDeclarator` stops right after a structured binding like `[a,
b]`, since nothing can follow it — but that check only covers the
unparenthesized form. For `([a, b])`, the binding gets parsed inside
`ParseParenDeclarator`, and the outer `ParseDirectDeclarator` doesn't
notice — it carries on into its suffix loop and parses a trailing `()`
as a function declarator. `([a, b])() {}` then looks like a function
definition, so `ActOnStartOfFunctionDef` gets handed a
`DecompositionDecl` where it expects a `FunctionDecl`:
`cast<FunctionDecl>` asserts, or segfaults later without assertions —
that's #193687. (The `b;` in the report is noise; `([a])() {}` alone
crashes.)
This patch makes `ParseDirectDeclarator` stop as well when the
parenthesized declarator turns out to be a structured binding, so
[8 lines not shown]
[SLP]Fix undef/poison matching in TreeEntry::isSame
Undef no longer matches poison mask elements (poison is stronger than
undef and its lane is unrecoverable); poison matches any lane.
Fixes #219631
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/219704
[IR] Add helpers to AllocaInst to avoid getAllocatedType(). (#219594)
Add AllocaInst::getAllocationBaseSize() and AllocaInst::isScalable(),
which represent common patterns for uses which only need the size of an
alloca, but can't use getAllocationSize().
This only replaces uses which are equivalent. (There are a couple of
places in DebugInfo which getTypeSizeInBits(), which is not equivalent,
so this patch doesn't touch them for now.)