[Dexter] Add ability to rewrite scripts to fill-in unknown values
This patch adds a feature to Dexter that allows scripts to be passed to
Dexter with missing expected values (`null` values in YAML), which Dexter
will attempt to "fill-in" with expected values that match the debugger's
actual output. The result is written to a file with the same name as the
original test file, in the directory given by --results-directory if one
is present; all content outside of the Dexter script itself is preserved
exactly as-is.
unit/zap: key case normalization tests
Testing that normalized lookups work correctly for the supported
normalization forms, and that conflicts are detected and reported
correctly.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18654
zap: expose zap_remove_norm_by_dnode()
Just so the test suite can use it.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18654
[lldb][Windows] extend @skipIfWindows to lldb-server or in process (#202688)
Some tests fail when using `lldb-server.exe` and pass when using the in
process plugin and vice-versa.
This patch adds the `skipIfWindowsAndNoLLDBServer` and
`expectedFailureWindowsAndNoLLDBServer` decorators (and their opposites)
to only skip tests if they run on `lldb-server` or the in process
plugin.
This fixes 4 XPASS when running tests with `USE_LLDB_SERVER=1`.
rdar://179117754
[OpenMP] Ignore teams ICV setters in restricted contexts (#194428)
This patch prevents `omp_set_num_teams()` and
`omp_set_teams_thread_limit()` from updating teams-related ICVs when
called from restricted runtime contexts.
The non-implicit parallel-region case follows the OpenMP 5.1
restriction. The active `teams`-region case is handled defensively
because these ICVs are device-scoped and updating them during an active
`teams` region can affect later teams execution.
The calls now warn and return without updating the ICVs.
Fixes #194426.
[llvm][MC] Store RegSize using uint32_t instead of uint16_t. (#201886)
`uint32_t` is needed for working with registers with size >= 65535,
which is the case for a private ISA that I am currently working on. The
performance impact is negligible. See discussions in [LLVM
Discourse](https://discourse.llvm.org/t/rfc-support-reg-sizes-greater-than-65534/90970/2).
[NFC][analyzer] Refactor VisitReturnStmt (#202675)
Simplify an old-style for loop that used explicit iterator manipulation,
and clarify the manipulation of the exploded nodes by removing the
`NodeBuilder`.
This is part of my commit series that gradually removes the class
`NodeBuilder`.
17694 test runner silently ignores missing tests in runfile
Reviewed by: Rich Lowe <richlowe at richlowe.net>
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Dan McDonald <danmcd at edgecast.io>
[AMDGPU] SIFoldOperands: update BUNDLE header implicit use when folding (#201872)
When folding an operand inside a BUNDLE, also rewrite the matching
implicit use on the bundle header. LiveVariables iterates a
MachineBasicBlock with the bundle-aware iterator and only inspects the
header, so without this update its kill flags go stale and a later
MachineVerifier run reports "Using a killed virtual register".
Co-Authored-By: Claude Opus 4 <noreply at anthropic.com>
Co-authored-by: Claude Opus 4 <noreply at anthropic.com>
nuageinit: validate set-name to prevent shell injection in variable names
Shell variable names cannot be safely quoted with shell_escape() —
only alphanumeric characters are valid. Add validation that set-name
only matches [a-zA-Z0-9]+; invalid values are rejected with a
warning and the rename is skipped entirely.
nuageinit: use single-quote shell escaping for hostname in rc.conf.d
The hostname value was written inside double quotes in
/etc/rc.conf.d/hostname. POSIX shell performs command substitution
inside double quotes, so a hostname containing $() or backticks would
be executed when the file is sourced (e.g., by rc(8)).
Switch to using the existing shell_escape() helper, which wraps values
in single quotes. In POSIX shell, single-quoted strings are completely
literal — no expansion or substitution of any kind is performed.
While the hostname is already validated to contain only
[a-zA-Z0-9.-], this change provides defense-in-depth so the output
format is safe regardless of future validation changes.
Reported by: Yazdan Soltani <yazdan.soltani at gmail.com>
[SelectionDAG] Pass dest and src alignments separately to memcpy and memmove lowering functions (#201119)
Implements FIXMEs around memcpy and memmove lowering code about passing
destination and source alignments to lowering functions.
Fixes ARM cost model's cost estimation for an inlined `memcpy`. The test
shows the generated code as two instructions so the cost should've been 2,
but it was estimated as a libcall which costs 4.
In the backend functions that don't care about destination and source
alignments, the old alignment calculation `std::min(dstAlign, srcAlign)`
used as the alignment. This gives us the old lowering behavior on those
backends.
[flang][hlfir] Reset lower bounds to one when bufferizing hlfir.as_expr move (#202406)
Example:
```fortran
module m
type t
integer, allocatable :: a(:)
end type
contains
function pf()
integer, allocatable :: pf(:)
allocate(pf(-5:-3)); pf = [1,2,3]
end function
end module
program p
use m
type(t) :: z
z = t(pf())
[12 lines not shown]
[clang][deps] Add in-flight query caching to `DependencyScanningFilesystemSharedCache` (#199680)
Concurrent dep-scan workers querying the same filename or UID each issue
their own `stat` and `open` against the underlying filesystem; only the
first to finish wins the cache insert, the others' work is wasted.
Add per-key in-flight tracking to `CacheShard`. `InProgressByFilename`
and `InProgressByUID` map each active key to a
`std::shared_ptr<InProgressEntry>` carrying a `std::condition_variable`,
a `Done` predicate, and the produced entry pointer.
`acquireFilenameSlot` / `acquireUIDSlot` collapse three outcomes
(resolved hit, in-progress wait, fresh producer slot) into one critical
section against the shard lock. `fulfilFilenameSlot`,`fulfilUIDSlot`
publish the produced entry, set `Done`, erase the slot, and `notify_all`
waiters outside the lock.
`computeAndStoreResult` now claims the filename slot before `stat` and
the UID slot before `readFile`, so both stat and open redundancy
collapse.