Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move test into test/std subdirectory. | Eric Fiselier | 2014-12-20 | 28 | -1030/+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 | 2 | -5/+5 |
| | | | | 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 | ||||
* | Implement n3584 - Addressing Tuples by Type | Marshall Clow | 2013-07-13 | 4 | -0/+116 |
| | | | | llvm-svn: 186237 | ||||
* | test for pair piecewise construction | Howard Hinnant | 2011-06-22 | 1 | -1/+34 |
| | | | | llvm-svn: 133667 | ||||
* | LWG 1191 | Howard Hinnant | 2010-11-17 | 1 | -0/+32 |
| | | | | llvm-svn: 119545 | ||||
* | license change | Howard Hinnant | 2010-11-16 | 23 | -46/+46 |
| | | | | 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 | 5 | -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 problems | Howard Hinnant | 2010-08-22 | 7 | -7/+6 |
| | | | | 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 | 25 | -25/+25 |
| | | | | llvm-svn: 103516 | ||||
* | libcxx initial import | Howard Hinnant | 2010-05-11 | 25 | -0/+798 |
llvm-svn: 103490 |