aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
diff options
context:
space:
mode:
authorLouis Dionne <ldionne.2@gmail.com>2023-02-07 15:21:08 -0800
committerLouis Dionne <ldionne.2@gmail.com>2023-04-28 15:16:15 -0400
commit9e35fc07f4001c5803069013bcfc266ad99da637 (patch)
tree544389eeaa606c304ac621186ed7fbe176d9e7bc /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
parent4b80a8c72d3d0dba4ee2469471dfccb7e257b319 (diff)
downloadllvm-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