summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/utility
Commit message (Collapse)AuthorAgeFilesLines
* Move test into test/std subdirectory.Eric Fiselier2014-12-2048-1924/+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-074-12/+12
| | | | 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
* Make std::forward and std::move (and std::move_if_noexcept) constexpr in C++14Marshall Clow2013-07-152-0/+13
| | | | llvm-svn: 186344
* Implement n3584 - Addressing Tuples by TypeMarshall Clow2013-07-134-0/+116
| | | | llvm-svn: 186237
* Improved tests (and fixed a bug in the tests); thanks to Richard Smith for ↵Marshall Clow2013-07-101-2/+13
| | | | | | the suggestion llvm-svn: 186022
* War on tabs.Howard Hinnant2013-07-081-23/+23
| | | | llvm-svn: 185865
* Implement n3668 - std::exchangeMarshall Clow2013-07-081-0/+47
| | | | llvm-svn: 185863
* test for pair piecewise constructionHoward Hinnant2011-06-221-1/+34
| | | | llvm-svn: 133667
* Fix and beef up test bug for move_if_noexceptHoward Hinnant2011-05-171-3/+11
| | | | llvm-svn: 131483
* Clean up a bunch of warnings in the tests, 3 of which actually turned out to ↵Howard Hinnant2011-05-171-1/+1
| | | | | | be test bugs. llvm-svn: 131479
* LWG 1191Howard Hinnant2010-11-171-0/+32
| | | | llvm-svn: 119545
* license changeHoward Hinnant2010-11-1642-84/+84
| | | | 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-0416-62/+62
| | | | | | 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-2217-40/+39
| | | | 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-1144-44/+44
| | | | llvm-svn: 103516
* libcxx initial importHoward Hinnant2010-05-1144-0/+1613
llvm-svn: 103490
OpenPOWER on IntegriCloud