summaryrefslogtreecommitdiffstats
path: root/libcxx/include/list
Commit message (Collapse)AuthorAgeFilesLines
...
* Ok, 3 major changes for debug mode in one commit:Howard Hinnant2013-08-021-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. I had been detecting and trapping iterator == and \!= among iterators in different containers as an error. But the trapping itself is actually an error. Consider: #include <iostream> #include <vector> #include <algorithm> template <class C> void display(const C& c) { std::cout << "{"; bool first = true; for (const auto& x : c) { if (\!first) std::cout << ", "; first = false; std::cout << x; } std::cout << "}\n"; } int main() { typedef std::vector<int> V; V v1 = {1, 3, 5}; V v2 = {2, 4, 6}; display(v1); display(v2); V::iterator i = std::find(v1.begin(), v1.end(), 1); V::iterator j = std::find(v2.begin(), v2.end(), 2); if (*i == *j) i = j; // perfectly legal // ... if (i \!= j) // the only way to check v2.push_back(*i); display(v1); display(v2); } It is legal to assign an iterator from one container to another of the same type. This is required to work. One might want to test whether or not such an assignment had been made. The way one performs such a check is using the iterator's ==, \!= operator. This is a logical and necessary function and does not constitute an error. 2. I had a header circular dependence bug when _LIBCPP_DEBUG2 is defined. This caused a problem in several of the libc++ tests. Fixed. 3. There is a serious problem when _LIBCPP_DEBUG2=1 at the moment in that std::basic_string is inoperable. std::basic_string uses __wrap_iterator to implement its iterators. __wrap_iterator has been rigged up in debug mode to support vector. But string hasn't been rigged up yet. This means that one gets false positives when using std::string in debug mode. I've upped std::string's priority in www/debug_mode.html. llvm-svn: 187636
* Implement full support for non-pointer pointers in custom allocators for list.Howard Hinnant2013-06-251-93/+144
| | | | llvm-svn: 184859
* Fix typo in assertion message. Reported by Shriramana Sharma.Dmitri Gribenko2013-06-241-1/+1
| | | | llvm-svn: 184691
* Fix bug in __libcpp_db::__iterator_copy. Add debug test for swaping lists.Howard Hinnant2013-04-051-1/+1
| | | | llvm-svn: 178892
* More work on debug mode for list.Howard Hinnant2013-04-051-0/+11
| | | | llvm-svn: 178819
* No functionality change at this time. I've split _LIBCPP_VISIBLE up into ↵Howard Hinnant2013-03-061-5/+5
| | | | | | two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS. This is in preparation for taking advantage of clang's new __type_visibility__ attribute. llvm-svn: 176593
* Dimitry Andric: many visibility fixes. Howard: Much appreciated. Can you ↵Howard Hinnant2012-09-141-2/+2
| | | | | | send me a patch to CREDITS.TXT? llvm-svn: 163862
* Further macro protection by replacing _[A-Z] with _[A-Z]pHoward Hinnant2011-11-291-30/+30
| | | | llvm-svn: 145410
* Add protection from min/max macrosHoward Hinnant2011-11-291-0/+2
| | | | llvm-svn: 145407
* Windows support by Ruben Van Boxem.Howard Hinnant2011-10-171-0/+2
| | | | llvm-svn: 142235
* Another installment on debug mode. This addresses list. However this ↵Howard Hinnant2011-09-271-30/+625
| | | | | | should be considered a temporary state. The API of the debug database and how vector and list use it, is unsatisfactory at the moment. It is both inefficient and overly verbose. I wanted to get this functionality checked in though. In the next day or so I'll refactor what is there in an attempt to streamline things. llvm-svn: 140660
* Fix const correctness bug in __move_assign. Found and fixed by Ion Gaztañaga.Howard Hinnant2011-09-021-2/+2
| | | | llvm-svn: 139032
* Fixed PR10574: http://llvm.org/bugs/show_bug.cgi?id=10574Howard Hinnant2011-08-121-0/+12
| | | | llvm-svn: 137522
* _STD -> _VSTD to avoid macro clash on windowsHoward Hinnant2011-06-301-55/+55
| | | | llvm-svn: 134190
* Provide names for template and function parameters in forward declarations. ↵Howard Hinnant2011-06-141-4/+4
| | | | | | The purpose is to aid automated documentation tools. llvm-svn: 133008
* noexcept for <list>.Howard Hinnant2011-06-031-68/+123
| | | | llvm-svn: 132562
* Chris Jefferson noted many places where function calls needed to be ↵Howard Hinnant2011-02-141-13/+13
| | | | | | qualified (thanks Chris). llvm-svn: 125510
* Qualify calls to addressof with std::. Bug 9106Howard Hinnant2011-02-021-31/+31
| | | | llvm-svn: 124726
* Bug 9096 - list::iterator not default constructibleHoward Hinnant2011-01-281-0/+4
| | | | llvm-svn: 124508
* license changeHoward Hinnant2010-11-161-2/+2
| | | | llvm-svn: 119395
* visibility-decoration.Howard Hinnant2010-09-221-29/+97
| | | | llvm-svn: 114551
* Changed __config to react to all of clang's currently documented has_feature ↵Howard Hinnant2010-09-041-17/+23
| | | | | | 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-221-16/+16
| | | | llvm-svn: 111750
* Wiped out some non-ascii characters that snuck into the copyright.Howard Hinnant2010-05-111-1/+1
| | | | llvm-svn: 103516
* libcxx initial importHoward Hinnant2010-05-111-0/+1531
llvm-svn: 103490
OpenPOWER on IntegriCloud