summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/utility/pairs
Commit message (Collapse)AuthorAgeFilesLines
* Move test into test/std subdirectory.Eric Fiselier2014-12-2028-1030/+0
| | | | llvm-svn: 224658
* D4451: Fix copy/move issues casude by __tuple_leafs's converting constructorEric Fiselier2014-07-241-1/+1
| | | | llvm-svn: 213888
* This fixes a very subtle ABI problem concerning the copy constructor ofHoward Hinnant2013-11-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pair, and a couple of pair-like implementation detail types. The C++98/03 and 11 standards all specify that the copy constructor of pair<int, int> is trivial. However as libc++ tracked the draft C++11 standard over the years, this copy constructor became non-trivial, and then just recently was corrected back to trivial for C++11. Unfortunately (for libc++1) the Itanium ABI specifies different calling conventions for trivial and non-trivial copy constructors. Therefore currently the C++03 libc++ copy constructor for pair<int, int> is ABI incompatible with the C++11 libc++ copy constructor for pair<int, int>. This is Bad(tm). This patch corrects the situation by making this copy constructor trivial in C++03 mode as well. Just in case it is needed for an incomplete C++11 compiler, libc++ retains the ability to support pair with rvalue references, but without defaulted special members. However the pair needs non-trivial special members to implement this special case, (as it did when clang was in this place a couple of years ago). During this work a bug was also found and fixed in is_trivially_constructible. And there is a minor drive-by fix in <__config> regarding __type_visibility__. A test is updated to ensure that the copy constructor of pair<int, int> is trivial in both C++03 and C++11. This test will necessarily fail for a compiler that implements rvalue references but not defaulted special members. llvm-svn: 194536
* War on tabsHoward Hinnant2013-08-072-5/+5
| | | | llvm-svn: 187906
* Make std::get constexprMarshall Clow2013-07-172-4/+20
| | | | llvm-svn: 186525
* Bug 16599 part 2: Make std::pair's constructors and comparison operators ↵Marshall Clow2013-07-167-1/+95
| | | | | | (and make_pair) constexpr. llvm-svn: 186430
* Implement n3584 - Addressing Tuples by TypeMarshall Clow2013-07-134-0/+116
| | | | llvm-svn: 186237
* test for pair piecewise constructionHoward Hinnant2011-06-221-1/+34
| | | | llvm-svn: 133667
* LWG 1191Howard Hinnant2010-11-171-0/+32
| | | | llvm-svn: 119545
* license changeHoward Hinnant2010-11-1623-46/+46
| | | | llvm-svn: 119395
* sync with N3126Howard Hinnant2010-09-053-0/+0
| | | | llvm-svn: 113099
* Changed __config to react to all of clang's currently documented has_feature ↵Howard Hinnant2010-09-045-10/+10
| | | | | | flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature. llvm-svn: 113086
* Fixing whitespace problemsHoward Hinnant2010-08-227-7/+6
| | | | llvm-svn: 111767
* GB 85, GB 87Howard Hinnant2010-08-192-60/+0
| | | | llvm-svn: 111546
* Wiped out some non-ascii characters that snuck into the copyright.Howard Hinnant2010-05-1125-25/+25
| | | | llvm-svn: 103516
* libcxx initial importHoward Hinnant2010-05-1125-0/+798
llvm-svn: 103490
OpenPOWER on IntegriCloud