[Clang] [Diagnostic] Extend DiagCompat() to C language modes (#209241)
This expands the compatibility warnings infrastructure added in #132348
to support C mode as well. Implementing this was actually fairly
straight-forward because we are only ever in C _or_ C++ mode, i.e.
during a single compilation we either emit only C compatibility warnings
or only C++ compatibility warnings. This means we can simply reuse the
existing code and just check for different LangOpts depending on whether
we're in C or C++ mode.
Concretely, this means that instead of e.g.
```
def ext_c2y_alignof_incomplete_array : Extension<
"'alignof' on an incomplete array type is a C2y extension">,
InGroup<C2y>;
def warn_c2y_compat_alignof_incomplete_array : Warning<
"'alignof' on an incomplete array type is incompatible with C standards "
"before C2y">, InGroup<CPre2yCompat>, DefaultIgnore;
[24 lines not shown]
[Object][GOFF] Recognize RLD and LEN records (#207118)
This patch adds explicit cases for RT_RLD and RT_LEN records when
parsing GOFF objects. These record types are not handled yet, but
recognizing them allows us to diagnose them and avoids teating them as
unexpected records.
AMDGPU: Convert tests to use subarch from triples in the file
This set was using target triple in the source rather than command
line arguments.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
AMDGPU: Migrate MIR parser tests to new subarch triples (59)
Mechanical migration by script.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
AMDGPU: Migrate more tests to using subarch triple commands (57) (#209817)
Mostly mechanical updates with some light cleanups manually
applied.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
[msan] Handle AVX512 mask.compress (#209654)
mask.compress selects elements from the first two operands according to
the mask; thus, we can propagate the shadow by applying the intrinsic to
the input shadows (with the mask unchanged i.e., trailingVerbatimArgs ==
1), using the forceIntegerIntrinsic option that was added in
https://github.com/llvm/llvm-project/pull/207053
deskutils/cfait: add new port
Cfait is a task manager / TODO list for people who want speed, efficiency, and
ownership of their data.
It connects to any standard CalDAV server (Radicale, Xandikos, Baikal,
Nextcloud, iCloud, etc.) so your tasks aren't locked inside a proprietary
walled garden.
You can use it comfortably from the command line (TUI) or on your desktop (GUI).
It's built "offline-first," so you can keep working without an internet
connection and Cfait will sync your changes the next time you go online.
PR: 295651
Submitted by: stephan at lichtenauer.co.za
AMDGPU: Migrate tests with regenerated checks to amdgpu subarch triple (54) (#209780)
Fold the explicit -mcpu subtarget into the amdgpu subarch triple on
autogenerated tests where the folded triple changes output relative to
the previous default subtarget (e.g. cost-model BASE lines, scheduling).
CHECK lines were regenerated with the update_*_test_checks.py scripts.
Co-Authored-By: Claude <noreply at anthropic.com> (Claude-Opus-4.8)
[X86] fmaddsub-combine.ll + fmsubadd-combine.ll - cleanup 512-bit buildvector tests (#209850)
Followup to #207436 - the full buildvector and partial buildvector tests
are covered by PhaseOrdering/X86/fmaddsub.ll which outputs the (still
poor) vectorized shuffle patterns
Ensure the current middle-end IR is tested by the backend, even though
its still not optimal (and divergent between SSE and AVX targets) - I've
kept the buildvector backend patterns for now (and moved the buildvector
fmsubadd patterns to fmsubadd-combine.ll for consistency).
Next step will be to investigate why the middle-end IR result isn't
optimal.
Minor cleanup for #144489
Unhook loongson from the build.
The last compiler update unfortunately does not work on mips64el, with clang 22
built with clang 19 being apparently functional, but clang 22 rebuilt with
the previous clang 22 hitting deterministic SIGSEGV on various files.
I don't have the time and energy to try and debug this (which is likely an
endianness problem, as octeon appears to run happily with clang 22), especially
when it takes 10 days for clang to rebuild itself on these machines; and
switching back to gcc 4 won't help much as modern software in ports will
require a working C++>=11 compiler to build anyway.
ok visa@
----------
/ \
/ REST \
/ IN \
/ PEACE \
[10 lines not shown]
[clang-format] Improve requires clause parsing (#207542)
We did not consider dependent templates and thus ended the parsing after
template and forcing a line break there. The tests was formatted as:
template <typename T> struct S {
template <typename Foo>
requires T::template
Has<Foo> void func(Foo);
};
[LFI][AArch64] Add PAC support for LFI (#207915)
This patch adds support for PAC instructions that sign `x30` by deferring
the LFI mask until the next control-flow instruction or label, allowing
an authentication instruction to run before the mask, which overwrites
the PAC signature bits in the top bits of the pointer. This relies on
FEAT_FPAC to provide a security benefit, which requires authentication
failure to cause a trap, rather than expecting the branch on an invalid
pointer to cause the trap.
[Sema][Serialization] Emit unused local typedefs in a deterministic order (#209639)
Sema::UnusedLocalTypedefNameCandidates is populated while iterating a
Scope's
DeclsInScope, which is a SmallPtrSet whose iteration order depends on
pointer
values and is therefore not stable across runs. The candidates are
serialized
into the AST file -- both to assign declaration IDs and to write the
UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES record -- and are also used to emit
the
deferred -Wunused-local-typedef warnings, so neither the emitted PCH/AST
file
nor the diagnostics were reproducible. With deterministic compilation
caching
this surfaces as a "cache poisoned" error, because two builds of the
same PCH
produce different bytes.
[4 lines not shown]
Do not make the size of the cmmu table public, and comment out some code at
compile time if we are building on a simple CMMU configuration, such as on
luna88k.
Tested by and ok aoyoma@
[clang][test][AIX] Set OBJECT_MODE=any for all clang test (#209531)
This patch sets OBJECT_MODE=any to have tools able to handle 32-bit or
64-bit objects.