diff options
author | Vlad Serebrennikov <serebrennikov.vladislav@gmail.com> | 2024-02-20 16:54:51 +0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 16:54:51 +0400 |
commit | d5922cf72cc18a7ac9f7afd1941ee2f7773d8469 (patch) | |
tree | b045bfe7e6596fd4ba5428ec30e193407d5f6756 /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp | |
parent | f1efc64b86d6fa60182c4d4a9ad7c8a051c21dbc (diff) | |
download | llvm-d5922cf72cc18a7ac9f7afd1941ee2f7773d8469.zip llvm-d5922cf72cc18a7ac9f7afd1941ee2f7773d8469.tar.gz llvm-d5922cf72cc18a7ac9f7afd1941ee2f7773d8469.tar.bz2 |
[clang] Implement `__is_layout_compatible` (#81506)
This patch implements `__is_layout_compatible` intrinsic, which supports
`std::is_layout_compatible` type trait introduced in C++20
([P0466R5](https://wg21.link/p0466r5) "Layout-compatibility and
Pointer-interconvertibility Traits"). Name matches GCC and MSVC
intrinsic.
Basically, this patch exposes our existing machinery for checking for
layout compatibility and figuring out common initial sequences. Said
machinery is a bit outdated, as it doesn't implement
[CWG1719](https://cplusplus.github.io/CWG/issues/1719.html) "Layout
compatibility and cv-qualification revisited" and
[CWG2759](https://cplusplus.github.io/CWG/issues/2759.html)
"`[[no_unique_address]` and common initial sequence". Those defect
reports are considered out of scope of of this PR, but will be
implemented in subsequent PRs.
Partially addresses #48204
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions