Rename and rework `_LIBCPP_TRIVIAL_PAIR_COPY_CTOR`. Move FreeBSD configuration in...
authorEric Fiselier <eric@efcs.ca>
Mon, 18 Jul 2016 01:58:37 +0000 (01:58 +0000)
committerEric Fiselier <eric@efcs.ca>
Mon, 18 Jul 2016 01:58:37 +0000 (01:58 +0000)
commit35b6413d1bf0123d63157417148c4bb5ad66ba4a
tree6eda694036081726562cdadcc433130457e8ec53
parent1447da3383b8fba6116bb8fdbc0dba15e0e42312
Rename and rework `_LIBCPP_TRIVIAL_PAIR_COPY_CTOR`. Move FreeBSD configuration in-tree.

This patch does the following:

* It renames `_LIBCPP_TRIVIAL_PAIR_COPY_CTOR` to `_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR`.
* It automatically enables this option on FreeBSD in ABI V1, since that's the current ABI FreeBSD ships.
* It cleans up the handling of this option in `std::pair`.

I would like the sign off from the FreeBSD maintainers. They will no longer need to keep their `__config` changes downstream.

I'm still hoping to come up with a better way to maintain the ABI without needing these constructors.

Reviewed in https://reviews.llvm.org/D21329

llvm-svn: 275749
libcxx/include/__config
libcxx/include/utility
libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp [new file with mode: 0644]