Eric Fiselier 
							
						 
					 
					
						
						
							
						
						b9536101dc 
					 
					
						
						
							
							NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove external include guards.  
						
						 
						
						... 
						
						
						
						Things done in this patch:
1. Make __debug include __config since it uses macros from it.
2. The current method of defining _LIBCPP_ASSERT is prone to redefinitions. Move
the null _LIBCPP_ASSERT definition into the __debug header to prevent this.
3. Remove external <__debug> include gaurds. <__debug> guards almost all of its
contents internally. There is no reason to be doing it externally.
This patch should not change any functionality.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@215332  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-08-10 23:53:08 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marshall Clow 
							
						 
					 
					
						
						
							
						
						ebfc50ee89 
					 
					
						
						
							
							Fix for PR18735 - self-assignment for map/multimap gives incorrect results in C++03  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@201021  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-08 04:03:14 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						ff7546e974 
					 
					
						
						
							
							SCARY/N2913 iterator support between the multi and non-multi versions of the associative and unordered containers.  I beleive lack of support for this was accidentally recently introduced (by me) and this is fixing a regression.  This time tests are put in to prevent such a regression in the future.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@191692  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-09-30 19:08:22 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marshall Clow 
							
						 
					 
					
						
						
							
						
						6dff618d7d 
					 
					
						
						
							
							LWG Issue 2210 (Part  #6 ): unordered_map and unordered_multimap  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@190576  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-09-12 03:00:31 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						f9d2680e19 
					 
					
						
						
							
							A collection of minor type-o fixes.  The first two aren't testable, but all tests pass with them.  I stumbled across them while experimenting with a std::move that checks its argument for non-const.  The third corrects a test that is currently failing.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@190563  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-09-12 00:10:44 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						9a894d93de 
					 
					
						
						
							
							Zhihao Yuan noted that there were a few unneeded  statements.  Eliminated the unnecessary ones, and commented the ones that are there for non-obvious reasons such as to help things limp along in C++03 language mode.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189039  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-08-22 18:29:50 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						0f678bd69e 
					 
					
						
						
							
							Nico Rieck:  this patch series fixes visibility issues on Windows as explained in < http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html >.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188192  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-08-12 18:38:34 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						f890d9bfaa 
					 
					
						
						
							
							Debug mode for unordered_multimap.  Some mods were done for unordered_map as well to keep all the tests passing.  However unordered_map is at the very least still missing tests, if not functionality (if it isn't tested, it probably isn't working).  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187446  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-30 21:04:42 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						39213641f4 
					 
					
						
						
							
							Debug mode for unordered_set.  I believe this to be fairly complete for  
						
						 
						
						... 
						
						
						
						unordered_set, however it is not complete yet for unordered_multiset,
unordered_map or unordered_multimap.  There has been a lot of work done
for these other three containers, however that work was done just to
keep all of the tests passing.
You can try this out with -D_LIBCPP_DEBUG2.  You will have to link to a
libc++.dylib that has been compiled with src/debug.cpp.  So far, vector
(but not vector<bool>), list, and unordered_set are treated.  I hope to
get the other three unordered containers up fairly quickly now that
unordered_set is done.
The flag _LIBCPP_DEBUG2 will eventually be changed to _LIBCPP_DEBUG, but
not today.  This is my second effort at getting debug mode going for
libc++, and I'm not quite yet ready to throw all of the work under the
first attempt away.
The basic design is that all of the debug information is kept in a
central database, instead of in the containers.  This has been done as
an attempt to have debug mode and non-debug mode be ABI compatible with
each other.  There are some circumstances where if you construct a
container in an environment without debug mode and pass it into debug
mode, the checking will get confused and let you know with a readable
error message.  Passing containers the other way: from debug mode out to
a non-debugging mode container should be 100% safe (at least that is the
goal).
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@186991  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-23 22:01:58 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						9b128e06ed 
					 
					
						
						
							
							Remove implicit conversion from __value_type to value_type in [unordered_][multi]map.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=16549  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185711  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-05 18:06:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						b66e1c3f96 
					 
					
						
						
							
							Removed extension in [unordered_][multi]map which allowed one to emplace using just an argument for the key, as opposed to using piecewise_construct.  However a bug report exposed that this created an unfortunate ambiguity.  People who are currently using the extension will be notified the next time they compile, and will have to change to using piecewise_construct.  There are no ABI issues with the removal of this extension.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=16542  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185666  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-04 20:59:16 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						e008d4eecc 
					 
					
						
						
							
							Simplify comparators of [unordered_][multi]map.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=16538  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185665  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-04 19:46:35 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						7a6b7cedcb 
					 
					
						
						
							
							Implement full support for non-pointer types in custom allocators.  This is for the unordered containers only.  This work still needs to be done on the sequence containers.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@184635  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-22 15:21:29 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						83eade6abb 
					 
					
						
						
							
							No functionality change at this time.  I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS.  This is in preparation for taking advantage of clang's new __type_visibility__ attribute.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@176593  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-03-06 23:30:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						635ce1d127 
					 
					
						
						
							
							The rules for emplace in map, multimap, unordered_map and unordered_multimap changed a while back and I'm just now updating to these new rules.  In a nutshell, you've got to know you're emplacing to a pair and use one of pair's constructors.  I made one extension:  If you want to emplace the key and default construct the mapped_type, you can just emplace(key), as opposed to emplace(piecewise_construct, forward_as_tuple(key), forward_as_tuple()).  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@157503  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-05-25 22:04:21 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						f8880d0b85 
					 
					
						
						
							
							As an extension, support incomplete types in the unordered containers to match what we already do in the associative containers.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@146376  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-12-12 17:26:24 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						d4cf215e08 
					 
					
						
						
							
							Fix  http://llvm.org/bugs/show_bug.cgi?id=11461 .  Credit Alberto Ganesh Barbati.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@146345  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-12-11 20:31:33 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						9996844df0 
					 
					
						
						
							
							Further macro protection by replacing _[A-Z] with _[A-Z]p  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@145410  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-11-29 18:15:50 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						08e17472e4 
					 
					
						
						
							
							Windows support by Ruben Van Boxem.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@142235  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-17 20:05:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						e3e3291f3a 
					 
					
						
						
							
							Fixed PR10574:  http://llvm.org/bugs/show_bug.cgi?id=10574  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@137522  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-12 21:56:02 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						099084d52f 
					 
					
						
						
							
							http://llvm.org/bugs/show_bug.cgi?id=10455  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@135854  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-23 16:14:35 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						61aa6013c3 
					 
					
						
						
							
							Correct for new rules regarding implicitly deleted special members.  http://llvm.org/bugs/show_bug.cgi?id=10191  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@134248  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-01 19:24:36 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						0949eedbd6 
					 
					
						
						
							
							_STD -> _VSTD to avoid macro clash on windows  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@134190  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-30 21:18:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						7604fea08c 
					 
					
						
						
							
							More fixes:  One of my fixes to type_traits earlier today was incorrect, so that is reverted.  Recently clang appears to have tightened up its definition of is_convertible and that has caused some failures in [unordered_][multi]map.  I've switched to using is_constructible to restablish the desired functionality in [unordered_][multi]map.  Specifically, inserting rvalues of move-only types for the keys.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@133402  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-19 21:45:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						5f2f14c5d2 
					 
					
						
						
							
							noexcept for <unordered_map>.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132646  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-04 18:54:24 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						2529d02b5d 
					 
					
						
						
							
							Qualify calls to addressof with std::.  Bug 9106  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124726  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-02 17:36:20 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						b64f8b07c1 
					 
					
						
						
							
							license change  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119395  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-16 22:09:02 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						ee6ccd0e32 
					 
					
						
						
							
							visibility-decoration sweep completed.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114685  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-23 18:58:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						73d21a4f07 
					 
					
						
						
							
							Changed __config to react to all of clang's currently documented has_feature 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.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113086  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-04 23:28:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						324bb03bb9 
					 
					
						
						
							
							Fixing whitespace problems  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111750  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-22 00:02:43 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						f5256e16df 
					 
					
						
						
							
							Wiped out some non-ascii characters that snuck into the copyright.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103516  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-11 21:36:01 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Howard Hinnant 
							
						 
					 
					
						
						
							
						
						bc8d3f97eb 
					 
					
						
						
							
							libcxx initial import  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-11 19:42:16 +00:00