[LLD][ELF] AArch64 Errata patch use STT_NOTYPE for symbols (#223686)
Use STT_NOTYPE instead of STT_SECTION for local symbols created for the
destination of patch return relocations. This avoids corrupting the
-emit-relocs output for existing relocations that target the
OutputSection's STT_SECTION symbol.
At the time the errata patch runs the .symtab section is expected to
contain at most one STT_SECTION symbol per OutputSection. Adding a new
STT_SECTION symbol causes the -emit-relocs output to use the newly
created symbol for the patch return rather than the OutputSection's
STT_SECTION. By using a STT_NOTYPE symbol the errata patch has no effect
on the -emit-relocs output.
fixes #223356
system: run file and configuration selfchecks
Execute these just before rc.bootup would start bringing
up the system. This would still have to audit-log, but
syslog-ng has not started yet.
Check for consistency rather than cryptographic correctness.
If the binaries match the cryptography should follow.
system: selftest POC with OpenSSL FIPS
Feeds the FIPS config to the OpenSSL config, but needs
an untainted config to run. Wires base OpenSSL to use
the same FIPS module since base does not have one.
Activation confirmed by seeing fips for both base and
ports using:
# /usr(/local)/bin/openssl list -providers
[libc][math] Use bit rounding in fputil::round (#221648)
Add a float-specific fputil::round overload for roundf. It uses
FPBits<float> and the biased exponent to handle sub-unit values,
already-integral inputs, and finite values with fractional bits.
For finite fractional values, add the rounding bit and clear the lower
mask. This implements round-to-nearest with halfway cases away from zero
using integer operations on the float encoding.
Tests: libc.test.src.math.smoke.roundf_test
Tests: libc.test.src.math.smoke.roundf_test.__NO_ROUND_OPT
[clang][bytecode] Give a discarded composite prvalue a result object (#219952)
A default member initializer can refer to previously initialized
subobjects, so `this` has to denote something while it is evaluated. A
discarded composite prvalue had no result object, so the interpreter
rejected code the legacy evaluator accepts:
```cpp
struct A { int &x; constexpr ~A() { x = 0; } };
struct B { int &x; const A &a = A{x}; };
constexpr int f() { int x = 1; B{x}; return x; }
constexpr int r = f(); // error: implicit use of 'this' pointer
static_assert(r == 0); // FXIME: 'r' shouble be 0, it's a bug in clang, see https://github.com/llvm/llvm-project/issues/85601.
```
https://godbolt.org/z/rb993Ef9d
This patch materialize a result object for a discarded composite prvalue
[7 lines not shown]
ports.cgi: set the autofocus at the end of the search query
Most browsers set the the autofocus at the beginning of the
input field which is not very helpful.
[clang] Look through alias templates when visiting dependent base classes (#223713)
When gathering the visible declarations of a class for code completion,
a dependent base class is resolved by taking its
`TemplateSpecializationType` and casting the template it names to a
`ClassTemplateDecl`. If the base is named through an alias template,
that cast fails, because the `TemplateName` refers to a
`TypeAliasTemplateDecl`. The base is then skipped, along with everything
it declares.
libstdc++'s `std::allocator` runs into this: it derives from
`__allocator_base<T>`, which is an alias template for
`__new_allocator<T>`. Before C++20, `allocate()` and `deallocate()` are
declared only in that base (the declarations in `allocator` itself are
guarded by `__cpp_constexpr_dynamic_alloc`), so a dependent
`std::allocator<T>` offered no members at all beyond the implicitly
declared ones:
```c++
[13 lines not shown]
[Clang] Improve diagnostics to show the correct position for `[[maybe_unused]]` before a using-alias (#223910)
For [[maybe_unused]] written before the 'using' keyword of an
alias-declaration:
`[[maybe_unused]] using T = int;`
Clang currently reports only:
`error: an attribute list cannot appear here
`
with no indication of where the attribute should actually go
`Parser::DiagnoseProhibitedAttributes` already provides exactly this
behavior, emitting a more helpful fix-it that suggests moving the
attribute to the correct location. ParseUsingDeclaration already uses it
without pass the FixItLoc location this way the fix-it sugestion is not
show for using decl.
[4 lines not shown]