[clang] fix getTemplateInstantiationArgs
This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the template
context of out-of-line definitions.
This greatly simplifies the signature of that function, by removing a bunch
of workarounds, and simpliffying a couple that weren't removed yet.
Since this now relies on qualifiers and template parameter lists,
this patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.
Also makes the explicit specialization AST nodes stop abusing the template
parameter lists by storing it's own template parameter list, creating a
dedicated field for them, similar to partial specializations.
py-fixtures: updated to 4.3.2
4.3.2
* Temporarily re-add the ``fixtures.tests.helpers`` module.
4.3.1
* Improve types for WarningsCapture.
* Use ParamSpec for better type hints.
* Return Self from __enter__ for better type inference.
Expand SMB timemachine tests to cover new MacOS behavior
This commit expands our time machine tests so that we verify
snapshots are taken in a variety of different circumstances
including the case where MacOS backupd keeps a long-lived
SMB session.
[CIR][AArch64] Lower NEON vsli/vsliq intrinsics (#198309)
### summary
part of: https://github.com/llvm/llvm-project/issues/185382
Lower the AArch64 NEON shift-left-and-insert intrinsics (`vsli_n_v` /
`vsliq_n_v`) in the CIR codegen path. The lowering mirrors classic
CodeGen (`clang/lib/CodeGen/TargetBuiltins/ARM.cpp`): bitcast both
vector operands to the target element type and emit a direct
`llvm.aarch64.neon.vsli` intrinsic call.
[Hexagon] Support reserving R16-R28 registers via -ffixed-rN (#197208)
Extend register reservation from R19-only to R16-R28. This allows users
to reserve callee-saved registers (R16-R27) and R28 via command-line
flags -ffixed-r16 through -ffixed-r28. The single bool ReservedR19 is
replaced with an array-based approach (ReservedR[32]) to scale cleanly
across all supported registers.
---------
Co-authored-by: quic-santdas <quic_santdas at quicinc.com>
devel/pinact: Add port: CLI to pin GitHub Actions and Reusable Workflows
pinact is a CLI to edit GitHub Workflow and Composite action files and
pin versions of Actions and Reusable Workflows. pinact can also update
their versions and verify version annotations.
WWW: https://github.com/suzuki-shunsuke/pinact
py-sybil: updated to 10.0.1
10.0.1 (26 Mar 2026)
- Re-work :func:`~sybil.testing.run_pytest` to fix problems caused by re-invoking external plugins
during the nested runs.
10.0.0 (25 Mar 2026)
- Moved to a `uv`__-based, ``pyproject.toml``-driven project layout, with ``main`` replacing
``master`` as the default git branch.
__ https://docs.astral.sh/uv/
- Move from Circle CI to Github Actions for continuous integration and releasing.
- Introduce `ruff`__ code formatting.
__ https://docs.astral.sh/ruff/
[7 lines not shown]
[clang] preserve exact redeclaration for getTemplateInstantiationPattern
This makes these functions not always return the definition if any.
The few users which depend on this are updated to fetch the definition
themselves.
Also fixes the VarDecl variant returning the queried declaration itself.
[VPlan] Rename Expression::isSingleScalar (NFC) (#199041)
The single-scalar terminology, as it is used in other places indicates
that all operands are scalars and that the result is a scalar.
VPExpressionRecipe::isSingleScalar is a misnomer, and is actually a
vector-to-scalar, using the existing terminology. Rename it for clarity.
[libc++] remove duplicate assertions for void/reference const any_cast (#199425)
For test cases of the const overload of any_cast, such as:
```C++
void test() {
std::any a = 0;
const std::any& a2 = a;
(void)std::any_cast<int&>(&a2);
}
```
(And similarly for void).
The problem is that the assertions are implemented both in the const and
non-const any_cast overloads, but since the const overload delegates to
the non-const overload, that ends up producing the same assertion twice.
This separates those test cases, because those assertions are
implemented in the function body, and that's only instantiated once per
specialization, not once per use.