[SystemZ][z/OS] Fix typo in CHECK line in systemz-charset.cpp (#216101)
This patch fixes a typo of `CHECK=UTF8` to `CHECK-UTF8` in the following
testcase
clang/test/CodeGen/systemz-charset.cpp
[NFC] Move PaddingClearer functionality into ASTContext (#215823)
CIR needs to use this functionality to support
`__builtin_clear_padding`, and a
`bit-cast-padding` warning could also apparently use it as well. This
patch moves
this logic to a function in `ASTContext`, which returns a vector of
effectively 'pair'
objects. This result is now ALSO cached, so we don't have to generate it
multiple
times for the same objects, as suggested by Eli.
The logic is effectively copy/pasted with some minor changes to remove
the dependency
on CodeGen/LLVM-IR.
The conversion of the 'pair' objects to IR is done in CodeGen, but that
function is generally
only mildly changed.
[clang][SPIR-V] Use the C calling convention as the target default (#210882)
On SPIR-V, `__cdecl` has no device-side equivalent, so it needs to be
normalized to the device default CC to match plain function type
CodeGen: Pass the exception model to the EH register hooks (#216099)
Currently this is sourced from TargetOptions. In the future
this should come from program state, so needs to be passed in
from a value derived from the module flag. Thread through the
argument for future use. For now it's still sourced directly
from the TargetOptions.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
libc: Implement qualifier-preserving standard library functions
Several standard library functions are specified to return an unqualified
pointer while accepting a pointer to a potentially const-qualified object.
N3020 addresses this behaviour, discarding qualifiers due to incompatible
pointer types, by introducing qualifier-preserving macros for the affected
set of standard library functions.
Add `__qualsel()` helper to `<sys/cdefs.h>`, implemented using the generic
selection, and define qualifier-preserving macros for that set of functions
in `<string.h>`, `<wchar.h>`, and `<stdlib.h>`.
Macros are gated on `_STDC_VERSION__ >= 202311L && !__cplusplus`, therefore
there is no behavioural change for earlier C modes or C++ translation units.
The kernel is likewise unaffected, as it does not include userland headers.
As function-like macros, they are transparent except at a call site where
the address-of operator is applied, the macro is suppressed via `#undef`,
or the identifier appears in parenthesised form; all of which cause the
[6 lines not shown]
[clang][lex] Cache stat failures in `-Wshadow-header` (#215962)
The `-Wshadow-header` warning introduced in
https://github.com/llvm/llvm-project/pull/162491 gets enabled by
`-Weverything` and causes `O(H*I*S)` extra `status()` syscalls (where H
is the number of included headers, I is the average number of inclusions
per header, S is the number of search paths). This is caused by
proactively probing search paths even after finding a suitable header,
and calling `FileManager` with `CacheFailure = false`.
There's no reason to not cache the non-existence of header files during
these probes. This PR starts caching these, bringing down the complexity
to `O(H*S)` and adds a regression test.
www/ruby-rack2: update to 2.2.24
2.2.23 (2026-04-01)
Security
* CVE-2026-34763 Root directory disclosure via unescaped regex interpolation
in Rack::Directory.
* CVE-2026-34230 Avoid O(n^2) algorithm in Rack::Utils.select_best_encoding
which could lead to denial of service.
* CVE-2026-26961 Raise error for multipart requests with multiple boundary
parameters.
* CVE-2026-34786 Rack::Static header_rules bypass via URL-encoded path
mismatch.
* CVE-2026-34831 Content-Length mismatch in Rack::Files error responses.
[19 lines not shown]
[ProfileData] Reject incompatible ExtBinary section flags (#215470)
Reject section-specific ExtBinary flags that do not belong to the given
section type, instead of silently accepting the mismatch. A death unit
test covers applying SecFlagOrdered to SecLBRProfile.
[CAS] Add ObjectStore::getStandaloneMemoryBuffer() (#215360)
getMemoryBuffer() is documented as returning a buffer "whose lifetime is
independent of the CAS (it can live longer)", but it is implemented with
MemoryBuffer::getMemBuffer() over whatever getData() returns. For an
on-disk CAS that is a pointer into the store's own mapping, so the buffer
dies with the store. Fix the comment to say what it does, and add
getStandaloneMemoryBuffer() for callers that need the documented
behavior.
The default implementation copies, which always satisfies the lifetime
requirement, so ObjectStore implementations are correct without changes.
An implementation that can hand out storage outliving itself overrides
getStandaloneMemoryBufferImpl() to avoid the copy.
OnDiskGraphDB does that for objects big enough to have a file of their own,
reading that file again rather than sharing the mapping it already has, so
the result stays valid even once the CAS directory is pruned and its pages
can be shared and reclaimed rather than charged to the process. Everything
[5 lines not shown]