Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move test into test/std subdirectory. | Eric Fiselier | 2014-12-20 | 48 | -1924/+0 |
| | | | | llvm-svn: 224658 | ||||
* | D4451: Fix copy/move issues casude by __tuple_leafs's converting constructor | Eric Fiselier | 2014-07-24 | 1 | -1/+1 |
| | | | | llvm-svn: 213888 | ||||
* | This fixes a very subtle ABI problem concerning the copy constructor of | Howard Hinnant | 2013-11-13 | 1 | -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 tabs | Howard Hinnant | 2013-08-07 | 4 | -12/+12 |
| | | | | llvm-svn: 187906 | ||||
* | Make std::get constexpr | Marshall Clow | 2013-07-17 | 2 | -4/+20 |
| | | | | llvm-svn: 186525 | ||||
* | Bug 16599 part 2: Make std::pair's constructors and comparison operators ↵ | Marshall Clow | 2013-07-16 | 7 | -1/+95 |
| | | | | | | (and make_pair) constexpr. llvm-svn: 186430 | ||||
* | Make std::forward and std::move (and std::move_if_noexcept) constexpr in C++14 | Marshall Clow | 2013-07-15 | 2 | -0/+13 |
| | | | | llvm-svn: 186344 | ||||
* | Implement n3584 - Addressing Tuples by Type | Marshall Clow | 2013-07-13 | 4 | -0/+116 |
| | | | | llvm-svn: 186237 | ||||
* | Improved tests (and fixed a bug in the tests); thanks to Richard Smith for ↵ | Marshall Clow | 2013-07-10 | 1 | -2/+13 |
| | | | | | | the suggestion llvm-svn: 186022 | ||||
* | War on tabs. | Howard Hinnant | 2013-07-08 | 1 | -23/+23 |
| | | | | llvm-svn: 185865 | ||||
* | Implement n3668 - std::exchange | Marshall Clow | 2013-07-08 | 1 | -0/+47 |
| | | | | llvm-svn: 185863 | ||||
* | test for pair piecewise construction | Howard Hinnant | 2011-06-22 | 1 | -1/+34 |
| | | | | llvm-svn: 133667 | ||||
* | Fix and beef up test bug for move_if_noexcept | Howard Hinnant | 2011-05-17 | 1 | -3/+11 |
| | | | | llvm-svn: 131483 | ||||
* | Clean up a bunch of warnings in the tests, 3 of which actually turned out to ↵ | Howard Hinnant | 2011-05-17 | 1 | -1/+1 |
| | | | | | | be test bugs. llvm-svn: 131479 | ||||
* | LWG 1191 | Howard Hinnant | 2010-11-17 | 1 | -0/+32 |
| | | | | llvm-svn: 119545 | ||||
* | license change | Howard Hinnant | 2010-11-16 | 42 | -84/+84 |
| | | | | llvm-svn: 119395 | ||||
* | sync with N3126 | Howard Hinnant | 2010-09-05 | 3 | -0/+0 |
| | | | | llvm-svn: 113099 | ||||
* | Changed __config to react to all of clang's currently documented has_feature ↵ | Howard Hinnant | 2010-09-04 | 16 | -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 problems | Howard Hinnant | 2010-08-22 | 17 | -40/+39 |
| | | | | llvm-svn: 111767 | ||||
* | GB 85, GB 87 | Howard Hinnant | 2010-08-19 | 2 | -60/+0 |
| | | | | llvm-svn: 111546 | ||||
* | Wiped out some non-ascii characters that snuck into the copyright. | Howard Hinnant | 2010-05-11 | 44 | -44/+44 |
| | | | | llvm-svn: 103516 | ||||
* | libcxx initial import | Howard Hinnant | 2010-05-11 | 44 | -0/+1613 |
llvm-svn: 103490 |