[NFC][analyzer] Replace generateErrorNode with addSink (#235749)
This change replaces use of `CheckerContext::generateErrorNode` with
`getSink`, then deletes `generateErrorNode`. Textually replacing
`generateErrorNode` with `addSink` will correctly update _most_
downstream checkers; but calls of the form `C.generateErrorNode(State,
Tag)` (if there are any – there wasn't any in upstream) would need to be
updated to `C.addSink(State, C.getPredecessor(), Tag)`.
This change was motivated by the fact that `addSink` and
`generateErrorNode` did the same thing, so their separate existence
caused lots of confusion (e.g. it implied that an "error node" is
somehow different from a regular node, which was completely false).
`generateErrorNode` was the more widespread among them (roughly 80 vs 40
call sites in checkers), but its name isn't suitable for the dozens of
cases where the sink is not used for an "error" (bug report), so I
decided to keep `addSink` as the only sink-making method.
[3 lines not shown]
[clang][CodeGen] Use the primary base chain for virtual method IDs
Identify a virtual method in the call graph section after the method it
overrides along the primary base chain of its class, as given by the record
layout. That is the vtable entry the method is placed in, which is not always
the first method it overrides.
Assisted-by: Jetski
[Support] Check whether a file is local by its handle on Windows (#233727)
To tell whether an open file is on a local disk, `is_local` resolved
its handle to a path with `GetFinalPathNameByHandleW`, found the volume
with `GetVolumePathNameW` and checked it with `GetDriveTypeW`.
This chain is pretty expensive. `GetVolumePathNameW` alone
takes 0.2-0.4 ms. `mapped_file_region` does this check on every unmap,
slowing down the on-disk CAS.
Ask the volume through the handle first. `NtQueryVolumeInformationFile`
returns its device type and characteristics in one call. A disk device
that is neither removable nor remote is a fixed local disk. Any other
answer, or a failed query, falls back to the path-based check as before.
A cache hit of a single-file compile is 2.1% faster through the
dependency scanning daemon and 1.4% faster in-process. Measured with
clang compile caching on the on-disk CAS in the swiftlang/llvm-project
fork.
[RISCV][P-ext] Add isel pattern for maccu.h01/maccu.h11 (#235998)
`maccu.h01` multiplies the zero-extended lower half word of rs1 by the
zero-extended upper half word of rs2 and adds the product to rd.
`maccu.h11` does the same with the zero-extended upper half words of
both.
Previously, (srl X, 16) was selected as a separate srli feeding
`maccu.h00`. Match it directly so the shift is folded. As with
`maccu.h00`, the patterns require the multiply to have a single use.
[libc++] Implement LWG4245: Operators that interact with counted_iterator and default_sentinel_t should be noexcept (#235445)
Mark `counted_iterator`'s `operator-` overloads and `operator==` taking
`default_sentinel_t` as `noexcept`, as required by the resolution of
LWG4245. They only read the stored count. Applied as a defect report to
every mode where `counted_iterator` exists (C++20 and later).
The existing `minus.default_sentinel.pass.cpp` and `compare.pass.cpp`
now check `noexcept` for both argument orders and the rewritten `!=`
forms. They fail without the header change and pass in C++20 and later.
Fixes #148226
math/py-jaxlib: New port: Support library for JAX
This is a missing support dependency port for math/py-jax
which fixed JAX and several other ports that depend on JAX.
All of them don't work without math/py-jaxlib.
Approved by: no need for approval according to bapt@
py-genshi: updated to 0.7.12
0.7.12
* Add support for Python 3.15 and PyPy 3.12
* Fix reference leak in Markup.__mod__ for mapping arguments
* Drop processing instructions (PI) and CDATA sections in HTMLSanitizer
* Track nesting depth when removing unsafe elements in HTMLSanitizer
* Update CI test matrix to add Python 3.15 release and PyPy 3.12
* Several RTD build fixes
* Update versions of GitHub actions.
py-curl: updated to 7.49.0
PycURL 7.49.0 - 2026-10-26
This release adds SSH_HOSTKEYFUNCTION and several missing libcurl SSH
constants, and accepts CurlShare subclasses in setopt. It fixes a
use-after-free when a mime part's content is replaced and makes object
teardown exception-safe by moving cleanup into tp_finalize. The build
system has also been cleaned up: custom setup.py command line options have
been removed in favor of their environment variable equivalents, and wheels
no longer install documentation and examples.
rpki-client: deduplicate writing out the CA state
nca_history_save() and ca_state_save() share a tempfile dance that really
only has one line that needs to be different between the two: the actual
writing of the lines. This was factored into a printing helper which we
can pass in as a function pointer. One minor change of behavior is that
the user visible warning shows the target file instead of the tempfile
with the random goo written to the .XXXXXXXX template.
There are more copies of this tempfile dance which will need a slightly
more elaborate abstraction to deduplicate.
with a fix from/ok job
[sanitizer_common][test] Require Android API 26 for variadic-open and allow_user_segv (#236010)
On Android API 24 emulators:
- `Posix/variadic-open.cpp` fails on `O_TMPFILE` because the older
kernel returns `EISDIR` when `O_TMPFILE` is not supported.
- `Linux/allow_user_segv.cpp` fails flakily across API 24 targets (not
just `i386`) due to the legacy `debuggerd` daemon racing on `waitpid`.
Require `android-26` when running on Android for both tests.
https://lab.llvm.org/buildbot/#/builders/sanitizer-x86_64-linux-android
Assisted-by: Gemini
www/npm*: Update to 12.2.0, use upstream distfile
Fetch the official tarball from the npm registry instead of a
re-rolled one on LOCAL/sunpoet, and create the installed layout
(bin/ and node_modules/.bin symlinks, compressed manual pages,
etc/man.d/npm.conf) in do-install. The package contents are
unchanged.
While here, sort variables as suggested by portclippy and drop a
REINPLACE_CMD that did not modify anything.
Changes: https://github.com/npm/cli/releases
PR: ports/299324
Approved by: maintainer timeout
[llvm] Remove incorrect IRMover assert (#221758)
The IRMover had an assertion that failed on modules with correct code.
The assert fired in an out-of-tree frontend.
Remove the assertion to fix that.
The assertion has been there for a long time (10 years if I read git
blame correctly) as the failing case cannot be hit when loading
completely separated modules (i.e. this is not reproducible with
`llvm-link`). It is however reproducible when generating modules from
code. One peculiarity is that a named struct type needs to be used in
both, the source and target module that are linked. As types are stored
in the LLVMContext, not in the Module, I believe this is still correct
IR and the IRLinker/Mover should be able to handle that correctly.
Concretely, the assert fired when filling `MappedTypes`. The dst Module
contains `%SharedTy`,
the src Module contains `%SharedTy` (exact same type) and `%Ty2`
(structurally equivalent to `%SharedTy`).
[9 lines not shown]