[clang][modules] Allow merging module-local class members across modules (#236509)
When the same variable template specialization is instantiated in two
module units and a TU imports both, clang merges the lambda closure
types (closure types are merged by identity), but not their `operator()`
members: the instantiated `operator()` is module-local to the
instantiating module, and `ASTContext::isSameEntity` refuses to merge
module-local declarations from different modules. The merged closure
type then has two `operator()` declarations that are not redeclarations
of each other, which is diagnosed as a false ODR violation during
deserialization.
The change allows merging class members across modules even when they
are marked module-local, provided that the (already checked) shared
declaration context is a class: a class definition determines its
members, so two members of the same class are the same entity. Two
*distinct* module-local classes are still not merged — the module-local
rule still applies to the classes themselves — so their members are
never compared, which is what that check exists for.
[16 lines not shown]
[Clang][CodeGen] Add support for _Complex arguments to "asm goto"
Clang emitted "=*r" for _Complex register outputs. On a callbr, the
SelectionDAG stores that output only on the fallthrough path, which
would silently skip adding a "store" on the indirect paths (#235940
turns that into an error). The HandleOutputConstraints method acceps
scalar and aggregate kinds, but not _Complex.
We fix this by treating a _Complex as an aggregate for this specific
case. The infrastructure already exists to handle {T, T} structs, so the
asm goto successor stores come for "free."
Fixes: 235946
Assisted-by: Claude for generating testcases
databases/mongodb-tools: 100.20.0
Changes:
https://github.com/mongodb/mongo-tools/blob/master/CHANGELOG.md#100200
The test files are renamed from foo_test.go to foo_unit_test.go. This makes that "make test" does not find any tests.
[00:00:32] ===> Testing ./...
[00:01:02] ? github.com/mongodb/mongo-tools [no test files]
[00:01:04] ? github.com/mongodb/mongo-tools/bsondump [no test files]
...
[00:01:06] testing: warning: no tests to run
[00:01:06] PASS
Let's see if this gets resolved in a future release or maybe somebody has a hint for me for go tests in the ports framework.
fix some minor issues
1. the DISTFILE is stored as v1.8.1.tar.gz which is prone to conflict, use
the github framework to ensure it is stored as uacme-1.8.1.tar.gz
2. the manpage uacme.1 claims a default CONFDIR which is wrong, fix that
3. a ctype error in crypto.c
System: Snapshots - always enforce note directory to be owned by "wwwonly:wheel" as configured to prevent notes created by the ui in root mode not being readable when switching to wwwonly.
(cherry picked from commit f81d527a436e5376cbac112ac444a5e54b7fdc93)
[CIR] Fix cir.try successor regions
`TryOp::getSuccessorRegions` sent every exit from the try region back to the
parent, so nothing led from the try region to the handlers. A `cir.resume`
ending the try region, left there once FlattenCFG has flattened an inner
cleanup scope, unwinds into a handler, and `CIRTryOpFlattening` branches it
to the handler dispatch block. Now every exit from the try region can enter
the handlers, and a `cir.resume` leaves the op only when there are none. The
parent keeps its edges to the handlers. An unwind out of a call in the try
region is not a region branch point, so these edges stand in for it, and
without them -remove-dead-values empties a handler that is reached only that
way.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[GlobalOpt] Skip use analysis for saturated function unnamed_addr (#236455)
For functions, `processGlobal()` only strengthens `unnamed_addr`: to
`unnamed_addr` for local linkage, or to `local_unnamed_addr` otherwise.
If the function already has that attribute or a stronger one, analyzing
its uses cannot lead to any change, so skip
`GlobalStatus::analyzeGlobal()`. Local functions with
`local_unnamed_addr` still need the analysis because they can be
upgraded to `unnamed_addr`.
This avoids redundant use-list walks observed while profiling large
Kotlin/Native builds.
Assisted-by: OpenAI Codex
[CIR] Keep cir.cleanup.scope cleanup regions reachable (#232217)
`getSuccessorRegions` must list every region that may run next. A
`cir.cleanup.scope` cleanup can also run from the middle of the body: on
an unwind out of a call, or on a `cir.return`, `cir.break`,
`cir.continue` or `cir.goto`. None of those is a region branch point, so
a cleanup reached only that way had no predecessor and generic MLIR
passes treated it as dead. For example, `cir-opt -remove-dead-values`
erased this whole scope, store included:
```mlir
cir.cleanup.scope {
cir.call @may_throw() : () -> ()
cir.yield
} cleanup eh {
%c = cir.const #cir.int<7> : !s32i
cir.store %c, %p : !s32i, !cir.ptr<!s32i>
cir.yield
}
[19 lines not shown]
System: Snapshots - always enforce note directory to be owned by "wwwonly:wheel" as configured to prevent notes created by the ui in root mode not being readable when switching to wwwonly.
[Offload][Omp] Launch kernels through liboffload (#233735)
Launch kernels through olLaunchKernel. Stop using KernelLaunchArgsTy
from the PluginInterface and use ol_kernel_launch_size_args_t. Removed
unused Plugin and Device launch kernel interfaces.
OpenMP specific trip count information was still being passed through
KernelLaunchArgs only to be printed inside the AMD plugin. Moved the
print to libomptarget which allowed to remove the last OpenMP piece from
KernelLaunchArgsTy.
Tested on Intel and AMD GPUs.
Assisted by Claude.
devel/py-pydbus: Switch to USE_PYTHON=pep517
Build with the PEP 517 frontend (setuptools legacy backend; the source
has no [build-system]); the package metadata becomes dist-info.
PR: 300055
Revert "System: Snapshots - always enforce notes to be owned by wwwonly to prevent notes created by the ui in root mode not being readable when switching to wwwonly."
This reverts commit b2fb2b63f479c8879d9a54fefabe310712cefd70.
use upstream e230f474b87134e8c6c85b630084c612057f253e and fix ia64 builds.
upstream commit message:
disable BROTLI_MODEL macro for some targets
PiperOrigin-RevId: 827486322
pci: Reserve bus numbers required by SR-IOV VFs
Some firmware assigns only one bus number to each PCI-PCI bridge. This
prevents later SR-IOV VF enumeration when a VF routing ID falls on a bus
number already allocated to a sibling bridge.
Reserve only the additional bus numbers required by SR-IOV PFs.
Enumerate all directly attached functions before child drivers and
bridges attach, inspect their device_t objects for SR-IOV, and grow the
PCI bus resource through the highest possible VF routing ID.
First VF Offset and VF Stride may change when NumVFs changes. Probe
every valid NumVFs value and preserve the original setting. When the
upstream hierarchy uses ARI, temporarily enable the SR-IOV ARI Hierarchy
control in the lowest-numbered PF while sizing, then restore it. Scope
active-VF detection to each conventional PCI slot; an ARI bus remains
one slot-0 hierarchy. If firmware left VFs enabled on a device, do not
modify it and reserve only its active layout.
[21 lines not shown]
pci_iov: Reuse downstream bridge bus window if it already covers VF bus
If the parent bridge's [secondary, subordinate] window already covers
the VF bus (e.g., programmed by BIOS or a prior PF), skip allocating
PCI_RES_BUS. This avoids a duplicate rman allocation in the multi-PF
case while still allocating when growth is actually needed.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D52163
(cherry picked from commit feb0a7e19f3c2e4c7eb90668b1e3dc34b5bb6dd6)