diff options
author | Louis Dionne <ldionne.2@gmail.com> | 2023-02-07 15:21:08 -0800 |
---|---|---|
committer | Louis Dionne <ldionne.2@gmail.com> | 2023-04-28 15:16:15 -0400 |
commit | 9e35fc07f4001c5803069013bcfc266ad99da637 (patch) | |
tree | 544389eeaa606c304ac621186ed7fbe176d9e7bc /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | |
parent | 4b80a8c72d3d0dba4ee2469471dfccb7e257b319 (diff) | |
download | llvm-9e35fc07f4001c5803069013bcfc266ad99da637.zip llvm-9e35fc07f4001c5803069013bcfc266ad99da637.tar.gz llvm-9e35fc07f4001c5803069013bcfc266ad99da637.tar.bz2 |
[libc++] Clean up pair's constructors and assignment operators
This patch makes std::pair's constructors and assignment operators
closer to conforming in C++23. The only missing bit I am aware of
now is `reference_constructs_from_temporary_v` checks, which we
don't have the tools for yet.
This patch also refactors a long-standing non-standard extension where
we'd provide constructors for tuple-like types in all standard modes. The
criteria for being a tuple-like type are different from pair-like types
as introduced recently in the standard, leading to a lot of complexity
when trying to implement recent papers that touch the pair constructors.
After this patch, the pre-C++23 extension is provided in a self-contained
block so that we can easily deprecate and eventually remove the extension
in future releases.
Differential Revision: https://reviews.llvm.org/D143914
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
0 files changed, 0 insertions, 0 deletions