While technically allowed, shared libraries without PT_LOAD segments
don't really make any sense. Bail out early to avoid the bits of code
that assume that we have a PT_LOAD sagment. This avoids a NULL pointer
dereference on i386 (which uses library_mquery.c) or bogus mmap calls
on other architectures (which use library.c).
The potential NULL pointer dereference in library_mquery.c was found by
Frank Denis.
ok guenther@
[DAG][GISel] Rename CTTZ_ZERO_UNDEF/CTLZ_ZERO_UNDEF/CTTZ_ELTS_ZERO_UNDEF -> CTTZ_ZERO_POISON/CTLZ_ZERO_POISON/CTTZ_ELTS_ZERO_POISON (#196732)
DAG/GISel are ambiguous about whether zero-input results in
UNDEF/POISON, unlike the rest of LLVM which makes it clear its POISON.
I've tried to clean this up once and for all by ensuring
SelectionDAG::canCreateUndefOrPoison does a includesPoison(Kind) check,
renaming the opcodes (including the VP variants) and updating as many
comments/tests as possible (I may still have missed some...).
[cmake] use target names instead of legacy variables (#185463)
Use the [name of the imported
targets](https://cmake.org/cmake/help/latest/module/CheckSymbolExists.html)
when testing the libraries during cmake configuration. This removes the
need to also set `CMAKE_REQUIRED_INCLUDES` and
`CMAKE_REQUIRED_DEFINITIONS` and reflects more modern CMake usage where
targets are preferred over variables.
This is already the case when checking libcurl in the same file.
[Clang] Transform lambda's constraints when instantiating parameter mapping (#195995)
This way we can remove a few workarounds of lambda expressions where
outer template arguments of concepts have to be preserved through
ImplicitConceptSpecializationDecls.
Fixes #193944