[libc++][pstl] Remove the libdispatch and the std_thread PSTL backends (#239290)
Their functionality is now provided by the statpart backend and they
became effectively a dead code.
[clang][NFC] Move DeviceKnownEmittedFns out of SemaCUDA (#236917)
As part of an attempt to generalize deferred diagnostic infrastructure,
this patch moves `DeviceKnownEmittedFns` map from `SemaCUDA` into
`Sema`, next to `DeviceDeferredDiags`, and `FunctionDeclAndLoc` and its
`DenseMapInfo` specialization into `SemaBase.h`, where the deferred
diagnostic types already live.
[lld][WebAssembly] Only report import attribute mismatches for undefined symbols (#239883)
Previously, `updateExistingUndefined` immediately reported an error if
two undefined references to a symbol had conflicting `import_module` or
`import_name` attributes, even if the symbol was later resolved by a
definition in another input file or LTO object.
This made `wasm-ld` dependent on input file ordering (succeeding when
the definition appeared before the undefined references, but failing
when it appeared after) and broke ThinLTO links where cross-module
inlining synthesized a declaration with the default `env` import module
for a symbol defined in bitcode.
Defer reporting import attribute mismatches until all input files and
LTO objects have been processed, and only emit the error if the symbol
remains undefined.
Fixes: https://github.com/emscripten-core/emscripten/issues/27939
[libc][docs] Link C23 sections to cppreference in docgen (#240746)
Header status tables currently render C23 section numbers as static
badges, forcing readers to look up standard definitions manually while
POSIX columns already link directly to the Open Group specification.
Add c-reference-root and optional per-symbol c-reference paths to the
C23 docgen YAML catalogues so numeric C standard sections render as
links to their corresponding cppreference.com pages. Non-section
annotations such as glibc extension notes remain plain badges.
Assisted-by: Automated tooling, human reviewed.
[LifetimeSafety] Treat lifetime_capture_by(this) on a constructor as lifetimebound (#240485)
lifetime_capture_by(this) on a constructor parameter means the same as
lifetimebound, but the analysis only honored it with inference enabled.
It also ignored a lifetimebound parameter of a gsl::Pointer constructor
taking several arguments. Handle both, and make lifetime_capture_by
inherited by redeclarations like lifetimebound, so an out-of-line
definition keeps it.
Fixes #227246
Assisted-by: Claude Opus 5.5
Co-authored-by: Gabor Horvath <gaborh at apple.com>
[AArch64] Support apple-m6/a20/s11 CPUs. (#238808)
These add several new features, notably (for the compiler) PAuth_LR,
CPA, FP8, as well as some SME and FP enhancements.
On Apple OS targets, M6/A20/S11 are the baseline CPUs for the new mach-o architecture slice, arm64e.x1.
We'll add support for the slice and associated codegen features
separately; this defines the CPU names and features.
As with previous generations, we currently treat A20 and S11 as aliases
of M6, since they have the same ISA feature set.
[RISCV][P-ext] Move vXi8/vXi16 build_vector handling to lowering (#238875)
These build_vectors were selected to a tree of ppaire/pack. Move
the creation of the ppaire/pack to lowering. This allows us to
better optimize partial undef build_vectors.
[mlir][bytecode] Reject dialect groups with more entries than declared (#229735)
`AttrTypeReader::initialize` sizes the attribute and type tables from
the counts at the start of the offset section, then fills them through
`parseDialectGrouping`, where each group has its own entry count.
Nothing checked that the group counts stay within the declared total, so
a malformed file could write past the end of a table. With assertions
enabled this fails the `SmallVector::operator[]` assertion; without them
it corrupts memory.
This patch emits an error when a group has more entries than the table
has room for. The writer always emits groups that sum to the declared
count, so valid bytecode is not affected.
Found by fuzzing `mlir-opt` with bytecode inputs.
Assisted-by: Claude