[flang][cuda] Preserve fir.rebox captured by cuf.kernel in SimplifyArrayCoorOp (#193837)
SimplifyArrayCoorOp folds fir.rebox → fir.array_coor by rewriting the
array_coor to consume the rebox's source box directly. This is unsafe
when the array_coor is inside a cuf.kernel and the rebox is not: in CUF,
a rebox of a device-attributed value (e.g. a dummy with cuf.data_attr =
device) is the op whose lowering copies the descriptor into
GPU-accessible memory. Folding it out skips the copy, so the kernel
dereferences a host-side descriptor on the device, causing
cudaErrorIllegalAddress (or cudaErrorUnknown on H100 under ATS).
The pattern already guards this hazard for OpenACC via
ACC_COMPUTE_AND_DATA_CONSTRUCT_OPS / ACC_DATA_ENTRY_OPS; this change
adds the analogous guard for cuf::KernelOp.
[lldb/test] Fix TestOSIndSYM for Darwin embedded platforms (#193839)
The test used CreateTarget(None) and relied on the attach to discover
the executable and load the dSYM. On remote platforms this doesn't find
the local dSYM, so the OS plugin never loads. Switch to
CreateTarget(executable) so the dSYM Python module is loaded before
attach.
Also split the test into two methods: test_python_os_plugin uses
spawn+attach which works both locally and on real remote platforms,
while test_python_os_plugin_remote simulates remote debugging by
manually spawning debugserver and is skipped on embedded platforms where
this setup conflicts with lldb-platform.
rdar://175455380
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
[CIR] Add nonnull on returns and pointer params (#188281)
Add nonnull to return attributes when the function has
ReturnsNonNullAttr (e.g. operator new), guarded by !NullPointerIsValid.
Add nonnull to pointer parameters with __attribute__((nonnull)), both
per-parameter and function-level forms.
Thread targetDecl into constructFunctionArgumentAttributes and build a
parallel ParmVarDecl array in the zip_equal loop to access
parameter-level attributes without manual index arithmetic.
Restrict->noalias handling has been moved to #191483.
lsof: Do not include _STABLE, _RC, etc. suffixes in version comparison.
Avoid (some) unnecessary system version warnings on NetBSD. The ABI
should not change between 11.0_BETA, 11.0_RC*, 11.0, and 11.0_STABLE.
In fact it should not change between 11.0, 11.1, 11.2, and so forth.
The only exception is *.99.* (e.g. 11.99.5), where the full version
should be compared.
XXX: This could be improved to only compare the major version when
the minor version is less than 99.
mac_seeotheruids: allow specificgid to be a list of groups
The specificgid functionality has historically allowed only a single
group to be exempt, but in practice one might want a few services to
be exempt for reasons. From a security perspective, we probably don't
want to encourage unrelated users to be grouped together solely for
this purpose, as that creates one point of shared access that could be
used for nefarious purposes.
Normalize the group list as we do cr_groups to allow for linear matching
rather than quadratic, we just need to account for the differences in
FreeBSD 15.0+ where cr_groups is entirely supplementary groups vs.
earlier versions, where cr_groups[0] is the egid and the rest is
sorted.
Reviewed by: csjp, des (earlier version)
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D56592
13157 maxbw can kill link with hires tick
17908 Removing maxbw can trap a Tx SRS in SRS_RESTART_DONE
17917 SRS_BW_ENFORCED is misnamed
17922 mac_tx_srs_drain, mac_tx_srs_enqueue do not correctly handle fanout hints
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Reviewed by: Ryan Zezeski <ryan at zinascii.com>
Approved by: Dan McDonald <danmcd at edgecast.io>
18078 snoop should report drops when capturing to file
Reviewed by: Gordon Ross <gordon.w.ross at gmail.com>
Reviewed by: Toomas Soome <tsoome at me.com>
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Dan McDonald <danmcd at edgecast.io>
key lookup failure should always return EACCES
spa_do_crypt_abd() already maps a missing key to EACCES. However
spa_do_crypt_mac_abd(), spa_do_crypt_objset_mac_abd(), and
spa_crypt_get_salt() still return the raw
spa_keystore_lookup_key() error (ENOENT). This is inconsistent
As we want to treat all “no key” failures as a permission
failure. Standardize on EACCES for the unloaded-key case.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Alek Pinchuk <alek.pinchuk at connectwise.com>
Closes #18448
[AArch64][PreISelIntrinsicLowering] Adjust tests to include -march=+sve (#193833)
These tests are exercising expansion of scalable vectors. This is
ill-defined without SVE as there aren't such legal vector types. This
mostly doesn't change the output (since the ops being exercised are
Expand in both configurations), but for fcanonicalize we're testing the
wrong result as this _shouldn't_ be (and isn't) expanded when you have
SVE.
ZTS: zpool_iostat_002_pos increase sleep time
Allow an additional second for the test to complete before checking
the results. This may explain occasional test failures in the CI.
Additionally, when the test fails dump the tmpfile for inspection.
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18455
ZTS: add targeted redundancy_draid_spare exception
When sequentially resilvering a dRAID pool it's possible that a few
correctable checksum errors will be reported. This is a known issue
which is occasionally observed in the CI. Until it's resolved we
want the test case to tolerate a few checksum errors in this scenario
to prevent false positives in the CI.
This change also has the additional side effect of standardizing in
one location how the dRAID pool integrity is verified.
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Issue #18307
Issue #18319
Closes #18436
[Clang] Fix sret AS for non-trivial-copy returns. (#186275)
classifyReturnType used getAllocaAddrSpace() for sret, which is wrong
on targets like AMDGPU where alloca lives in addrspace(5). For types
with deleted copy/move constructors, there is no way to construct into
a temp and copy out — the sret pointer must point directly to the caller's
destination in the default address space.
Add a target hook getSRetAddrSpace() so AMDGPU can return LangAS::Default
for non-register-passable types.
Fixes issue #185744
17992 libdevinfo: enable smatch and fix issues
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
geom manuals: Clarify units
The gpart manual says that sizes are specified in blocks, unless an SI
unit suffix is provided. This confuses new operators because GEOM uses
binary bytes, a large difference at modern storage pool sizes. Rewrite
suffixes in all GEOM manuals to consistently clarify this, matching what
we and the rest of the industry have been doing in other documentation.
While here, use non-breaking spaces between numbers and units, unless
they are already written with a hyphen.
MFC after: 3 days
Reviewed by: fuz
Reported by: bbaovanc <bbaovanc at bbaovanc.com>
Differential Revision: https://reviews.freebsd.org/D56534
(cherry picked from commit 975e3605ebb15cbaf5a25c1c9d1f51aed41291d0)
Fix memory corruption bugs in BSM record parsing
fetch_newgroups_tok(3): clamp group count to AUDIT_MAX_GROUPS before the
loop to prevent a stack buffer overflow when a crafted record specifies
more than 16 groups.
fetch_execarg_tok(3), fetch_execenv_tok(3): add a bounds check at the
top of the string-walking loop to prevent an out-of-bounds read when the
previous string's nul byte is the last byte of the record buffer.
fetch_sock_unix_tok(3): clamp the memchr search length to the number of
bytes remaining in the buffer to prevent an out-of-bounds read on short
tokens. Also clamp slen to sizeof(path) to prevent a one-byte overflow
when no nul byte is found within the path data.
fetch_socket_tok: fix copy-paste error where the remote address was
written into l_addr instead of r_addr.
Previously reported by: @haginara
[12 lines not shown]
Revert "[Darwin] Remove linker version checks for objc_msgSend selector stubs (#193637)" (#193828)
This reverts commit a6ab955369ae401cec75ced651c52c2348f117ad.
The linker version checks cannot be removed yet. The commit broke builds
that were using old linkers.
[VPlan] Shallow-traverse vector-loop in dropPoisonGen (NFC) (#193635)
A shallow-traversal of the vector loop region is sufficient to operate
on Memory and Interleave recipes.
[flang] Add parser support for Fortran 2023 conditional arguments (F2023 R1526-R1528) (#191303)
Implement parsing, unparsing, and parse tree nodes for the Fortran 2023
conditional argument syntax (F2023 R1526-R1528). This enables calls of
the form:
call sub((flag ? a : b))
call sub((x > 10 ? a : x > 5 ? b : c))
call sub((flag ? a : .NIL.))
- Add ConditionalArg and ConditionalArgTail parse tree nodes
- Add Nil empty class for .NIL. representation
- Add ConditionalArg as a new alternative in ActualArg
- Add parser rules for conditional-arg, consequent, and chained branches
- Add unparse support for round-trip printing
- Add dump-parse-tree and FeatureList support
- Add parser tests covering simple, multi-branch, .NIL., BOZ, NULL(),
keyword arguments, and module procedure cases
[mlir][canonicalize] Add filter-dialects option (#193041)
Add a new `filter-dialects` list option to the canonicalize pass. When
provided, only canonicalization patterns from the listed dialects are
collected, and the named dialects are force-loaded via
getDependentDialects.
Loading flow: the Canonicalizer's getDependentDialects override calls
`registry.addDialectToPreload(name)` for each filter-dialect name, which
records the name in a new `dialectsToPreload` list on DialectRegistry.
The PassManager's pipeline-init then calls
`dependentDialects.preloadSelectDialects(ctx, emitError)`, which loads
each preload entry via `context->getOrLoadDialect(name)` — the real
allocator is resolved from the context's own registry (registered by
the tool) and the dialect is loaded before multi-threaded execution
begins. If a requested dialect has no registration in the context, a
diagnostic `"can't load dialect '<name>': missing registration?"` is
emitted.
[17 lines not shown]