15eaebea15 
								
							 
						 
						
							
							
								
								Revert r178075, "Tighten up the iterator requirements ...", it breaks LLVM  
							
							... 
							
							
							
							bootstrap with libc++.
llvm-svn: 178116 
							
						 
						
							2013-03-27 04:10:25 +00:00  
				
					
						
							
							
								 
						
							
								5a13d8dcea 
								
							 
						 
						
							
							
								
								Tighten up the iterator requirements for the vector member templates.  This is especially important for the constructors so that is_constructible<vector<T>, I, I> gives the right answer when T can not be constructed from *I.  Test case included for this latter point.  
							
							... 
							
							
							
							llvm-svn: 178075 
							
						 
						
							2013-03-26 21:40:54 +00:00  
				
					
						
							
							
								 
						
							
								cd4a9fd301 
								
							 
						 
						
							
							
								
								Another vector debug mode test, and a static test on Allocator::value_type.  This partially addresses  http://llvm.org/bugs/show_bug.cgi?id=15576 .  
							
							... 
							
							
							
							llvm-svn: 178064 
							
						 
						
							2013-03-26 19:04:56 +00:00  
				
					
						
							
							
								 
						
							
								1d8a5164b4 
								
							 
						 
						
							
							
								
								More vector debug tests.  
							
							... 
							
							
							
							llvm-svn: 178033 
							
						 
						
							2013-03-26 15:45:56 +00:00  
				
					
						
							
							
								 
						
							
								a6d24cc19d 
								
							 
						 
						
							
							
								
								Fixed race conditions in thread tests; exposed by UBSan  
							
							... 
							
							
							
							llvm-svn: 178029 
							
						 
						
							2013-03-26 15:28:33 +00:00  
				
					
						
							
							
								 
						
							
								ea95898f29 
								
							 
						 
						
							
							
								
								Simply debug mode tests per Dmitri Gribenko's suggestion.  
							
							... 
							
							
							
							llvm-svn: 178026 
							
						 
						
							2013-03-26 14:28:25 +00:00  
				
					
						
							
							
								 
						
							
								d9db9f90fb 
								
							 
						 
						
							
							
								
								Need one more swap overload for swapping two lvalue vector<bool>::reference's.  
							
							... 
							
							
							
							llvm-svn: 178016 
							
						 
						
							2013-03-26 13:48:57 +00:00  
				
					
						
							
							
								 
						
							
								ea1bbbd135 
								
							 
						 
						
							
							
								
								Added debug tests for indexing, pop_back and both forms of erase.  Added an improved error message for erasing a single element with end().  
							
							... 
							
							
							
							llvm-svn: 177929 
							
						 
						
							2013-03-25 22:12:26 +00:00  
				
					
						
							
							
								 
						
							
								b14037be89 
								
							 
						 
						
							
							
								
								Remove some erroneous code I was using to debug debug mode.  
							
							... 
							
							
							
							llvm-svn: 177908 
							
						 
						
							2013-03-25 20:46:07 +00:00  
				
					
						
							
							
								 
						
							
								2d752fc2f9 
								
							 
						 
						
							
							
								
								Debug mode tests for vector::front and back.  
							
							... 
							
							
							
							llvm-svn: 177904 
							
						 
						
							2013-03-25 20:31:25 +00:00  
				
					
						
							
							
								 
						
							
								35b3b54548 
								
							 
						 
						
							
							
								
								More vector::iterator debug mode tests.  Run by adding to OPTIONS -D_LIBCPP_DEBUG2=1.  
							
							... 
							
							
							
							llvm-svn: 177897 
							
						 
						
							2013-03-25 20:03:19 +00:00  
				
					
						
							
							
								 
						
							
								92bd7c0337 
								
							 
						 
						
							
							
								
								Debug mode: learning to crawl.  I need to set up some tests that actually test that the debug mode is working, but that won't cause problems when debug mode isn't on.  This is my first prototype of such a test.  It should call std::terminate() because it's comparing iterators from different containers.  And std::terminate() is rigged up to exit normally.  If debug mode fails, and doesn't call terminate, then the program asserts.  The test is a no-op if _LIBCPP_DEBUG2 is not defined or is defined to be 0.  
							
							... 
							
							
							
							llvm-svn: 177892 
							
						 
						
							2013-03-25 19:29:35 +00:00  
				
					
						
							
							
								 
						
							
								a60ae88db2 
								
							 
						 
						
							
							
								
								Marshall Clow found some divide-by-zero warnings with UBSan in rand's binomial_distribution test.  This eliminates the divide-by-zeros and describes in comments the numerical difficulties the test is having.  Each of the problematic tests are exploring edge cases of the distribution.  
							
							... 
							
							
							
							llvm-svn: 177826 
							
						 
						
							2013-03-23 19:29:45 +00:00  
				
					
						
							
							
								 
						
							
								65a87ccdbf 
								
							 
						 
						
							
							
								
								This is a start at making the libc++ test suite friendlier to the -fnoexceptions flag.  Although this is not a complete solution, it does reduce the number of test failures on OS X from 467 to 128 on OS X when -fno-exceptions is enabled, and does not impact the number of failures at all when -fno-exceptions is not enabled.  The bulk of this code was donated anonymously.  
							
							... 
							
							
							
							llvm-svn: 177824 
							
						 
						
							2013-03-23 17:27:16 +00:00  
				
					
						
							
							
								 
						
							
								7c5b88b134 
								
							 
						 
						
							
							
								
								Test cleanup with respect to use of deprecated tmpnam function.  Also Windows port for these tests to use _tempnam.  The bulk of this patch was donated anonymously.  I've tested it on OS X and accept responsibility for it.  If I've broken anyone's platform by switching from tmpnam to mktemp for the generation of temporary file names, just let me know.  Should be easy to fix in test/support/platform_support.h  
							
							... 
							
							
							
							llvm-svn: 177755 
							
						 
						
							2013-03-22 20:05:40 +00:00  
				
					
						
							
							
								 
						
							
								761b5cf087 
								
							 
						 
						
							
							
								
								Fix bug in test; found by AddressSanitizer  
							
							... 
							
							
							
							llvm-svn: 177464 
							
						 
						
							2013-03-20 00:01:48 +00:00  
				
					
						
							
							
								 
						
							
								1c00ce5070 
								
							 
						 
						
							
							
								
								Fix bug in test; found by AddressSanitizer  
							
							... 
							
							
							
							llvm-svn: 177355 
							
						 
						
							2013-03-18 23:39:36 +00:00  
				
					
						
							
							
								 
						
							
								b56e8587af 
								
							 
						 
						
							
							
								
								Removed raw references to __APPLE__; now just check to see if it is defined.  
							
							... 
							
							
							
							llvm-svn: 177297 
							
						 
						
							2013-03-18 17:45:34 +00:00  
				
					
						
							
							
								 
						
							
								91907cbe82 
								
							 
						 
						
							
							
								
								Removed raw references to _WIN32; now just check to see if it is defined.  
							
							... 
							
							
							
							llvm-svn: 177291 
							
						 
						
							2013-03-18 17:04:29 +00:00  
				
					
						
							
							
								 
						
							
								7e4844b353 
								
							 
						 
						
							
							
								
								Parsing floating point numbers with very long precision was broken, and this patch fixes it.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=15445 .  
							
							... 
							
							
							
							llvm-svn: 176711 
							
						 
						
							2013-03-08 19:06:24 +00:00  
				
					
						
							
							
								 
						
							
								8b6a4de64a 
								
							 
						 
						
							
							
								
								Fix a bug in mutex_try_to_lock.  This was previously trying to unlock a mutex that it didn't own, causing an assertion failure in mutex.cpp.  The issue was that the unique_lock went out of scope, releasing the lock on m, then m.unlock() was called on an already-unlocked mutex.  
							
							... 
							
							
							
							This change removes the spurious m.unlock() call.  
If this test was previously passing for anyone with assertions enabled, then they should investigate bugs in their pthread implementation, as pthread_unlock() should not return 0 if the mutex is currently unlocked.
llvm-svn: 175506 
							
						 
						
							2013-02-19 11:28:45 +00:00  
				
					
						
							
							
								 
						
							
								62b943935d 
								
							 
						 
						
							
							
								
								[tests] Add support for a link_flags lit parameter.  
							
							... 
							
							
							
							- This is useful for testing with custom ABI libraries.
 - Patch by Michael van der Westhuizen.
llvm-svn: 174997 
							
						 
						
							2013-02-12 19:28:51 +00:00  
				
					
						
							
							
								 
						
							
								496f1765a2 
								
							 
						 
						
							
							
								
								[tests] Another batch of timeout increases.  
							
							... 
							
							
							
							llvm-svn: 174902 
							
						 
						
							2013-02-11 21:04:34 +00:00  
				
					
						
							
							
								 
						
							
								ceb47bb06d 
								
							 
						 
						
							
							
								
								[tests] Another batch of timeout increases.  
							
							... 
							
							
							
							llvm-svn: 174726 
							
						 
						
							2013-02-08 18:26:55 +00:00  
				
					
						
							
							
								 
						
							
								76efb57666 
								
							 
						 
						
							
							
								
								[tests] Add back stdc macros I accidentally refactored out.  
							
							... 
							
							
							
							- Patch by Michael van der Westhuizen:
--
r174404 accidentally removed stdc format, limit and constant macros from the Linux test runner logic.  This small patch re-adds the macros.
Making this change fixes the following tests on Linux:
 - depr/depr.c.headers/inttypes_h.pass.cpp
 - depr/depr.c.headers/stdint_h.pass.cpp
 - input.output/file.streams/c.files/cinttypes.pass.cpp
 - language.support/cstdint/cstdint.syn/cstdint.pass.cpp
--
llvm-svn: 174722 
							
						 
						
							2013-02-08 17:41:28 +00:00  
				
					
						
							
							
								 
						
							
								577e696425 
								
							 
						 
						
							
							
								
								[tests] Increase a bunch of wait limits.  
							
							... 
							
							
							
							- Basically I just ran the thread tests many many times on a busy machine and
   bumped the timeouts whenever I hit a test failure.
 - This is obviously subpar, but is the best I can do without the tests being
   rewritten to not depend on arbitrary timeouts.
llvm-svn: 174721 
							
						 
						
							2013-02-08 17:41:19 +00:00  
				
					
						
							
							
								 
						
							
								584a65befd 
								
							 
						 
						
							
							
								
								Give a lot more timing latitude to some of the timing tests. Busy buildbots are hitting the timing limits too often.  
							
							... 
							
							
							
							llvm-svn: 174539 
							
						 
						
							2013-02-06 20:25:56 +00:00  
				
					
						
							
							
								 
						
							
								05abe9372b 
								
							 
						 
						
							
							
								
								[tests] Infer the cxx_under_test (as clang++).  
							
							... 
							
							
							
							- This is a reasonable default, and makes testing just work with no required
   parameters.
 - Add notes on all of the inferred or default values.
llvm-svn: 174538 
							
						 
						
							2013-02-06 20:24:23 +00:00  
				
					
						
							
							
								 
						
							
								5178942ded 
								
							 
						 
						
							
							
								
								[tests] Change test default to run against locally built library.  
							
							... 
							
							
							
							llvm-svn: 174528 
							
						 
						
							2013-02-06 17:47:08 +00:00  
				
					
						
							
							
								 
						
							
								d2d614cd84 
								
							 
						 
						
							
							
								
								[tests] Enable use_system_lib support on Linux.  
							
							... 
							
							
							
							- Patch by Michael van der Westhuizen.
llvm-svn: 174527 
							
						 
						
							2013-02-06 17:45:53 +00:00  
				
					
						
							
							
								 
						
							
								434fb1f6d5 
								
							 
						 
						
							
							
								
								[tests] One last batch of XFAILs, for tests using new symbols added to libc++.  
							
							... 
							
							
							
							- As of this commit, the test suite should now fully pass on both darwin11 and
   darwin12 when testing against either a locally built libc++ or the system libc++.
llvm-svn: 174478 
							
						 
						
							2013-02-06 00:59:06 +00:00  
				
					
						
							
							
								 
						
							
								ba65d61767 
								
							 
						 
						
							
							
								
								[tests] Accept XFAIL arguments that match any part of a feature.  
							
							... 
							
							
							
							llvm-svn: 174469 
							
						 
						
							2013-02-06 00:04:52 +00:00  
				
					
						
							
							
								 
						
							
								36860df355 
								
							 
						 
						
							
							
								
								[tests] XFAIL some locale tests that don't seem to work on any Darwin.  
							
							... 
							
							
							
							llvm-svn: 174459 
							
						 
						
							2013-02-05 22:51:20 +00:00  
				
					
						
							
							
								 
						
							
								b6354a0767 
								
							 
						 
						
							
							
								
								[tests] If no explicit target triple is given, try to infer it.  
							
							... 
							
							
							
							llvm-svn: 174454 
							
						 
						
							2013-02-05 22:28:03 +00:00  
				
					
						
							
							
								 
						
							
								a563f32c6a 
								
							 
						 
						
							
							
								
								[tests] Mark another stream input expected failure (with system libc++).  
							
							... 
							
							
							
							llvm-svn: 174453 
							
						 
						
							2013-02-05 22:21:52 +00:00  
				
					
						
							
							
								 
						
							
								d0f05fb1b7 
								
							 
						 
						
							
							
								
								[tests] Mark another stream input expected failure (with system libc++).  
							
							... 
							
							
							
							llvm-svn: 174452 
							
						 
						
							2013-02-05 22:10:28 +00:00  
				
					
						
							
							
								 
						
							
								5ce9a5358b 
								
							 
						 
						
							
							
								
								[tests] Mark some string.conversions expected failures (with system libc++).  
							
							... 
							
							
							
							llvm-svn: 174451 
							
						 
						
							2013-02-05 22:10:27 +00:00  
				
					
						
							
							
								 
						
							
								1a7f7bc6bf 
								
							 
						 
						
							
							
								
								[tests] XFAIL a few things that require libc (?) support missing on Darwin.  
							
							... 
							
							
							
							llvm-svn: 174450 
							
						 
						
							2013-02-05 22:10:25 +00:00  
				
					
						
							
							
								 
						
							
								d15f013dc2 
								
							 
						 
						
							
							
								
								[tests] Mark some istream.unformatted expected failures (with system libc++).  
							
							... 
							
							
							
							llvm-svn: 174444 
							
						 
						
							2013-02-05 21:43:32 +00:00  
				
					
						
							
							
								 
						
							
								582c97defa 
								
							 
						 
						
							
							
								
								[tests] Add an available feature that combines the triple and use_system_lib.  
							
							... 
							
							
							
							- This is so that we can easily write XFAIL markers for tests that are known
    to fail with versions of libc++ as were shipped with a particular triple.
llvm-svn: 174443 
							
						 
						
							2013-02-05 21:43:30 +00:00  
				
					
						
							
							
								 
						
							
								f51f0319bb 
								
							 
						 
						
							
							
								
								[tests] Add support for REQUIRES and XFAIL lines in libc++ tests.  
							
							... 
							
							
							
							- We parse up to the first non-empty non-comment (C++ style) line, otherwise
   the format and semantics match what is used for LLVM/Clang tests.
 - For now, the only interesting thing to test against is a user supplied
   target_triple test parameter.
llvm-svn: 174440 
							
						 
						
							2013-02-05 21:03:25 +00:00  
				
					
						
							
							
								 
						
							
								8495871807 
								
							 
						 
						
							
							
								
								[tests] Add a 'use_system_lib' parameter.  
							
							... 
							
							
							
							- This controls whether to execute against the locally built library or
   not. The default is currently True which maps to what was already being done
   by default.
 - I'd appreciate it if someone can implement the proper handling of this flag
   on linux, I no longer remember the details of its .so handling.
llvm-svn: 174404 
							
						 
						
							2013-02-05 18:03:49 +00:00  
				
					
						
							
							
								 
						
							
								d27745e4fb 
								
							 
						 
						
							
							
								
								Make a few tests optimization-proof.  These tests were failing under -O3 because the optimizer was eliminating the call to new.  
							
							... 
							
							
							
							llvm-svn: 172631 
							
						 
						
							2013-01-16 17:56:06 +00:00  
				
					
						
							
							
								 
						
							
								980e7e7402 
								
							 
						 
						
							
							
								
								Make <cmath> classification macros work with integral types.  
							
							... 
							
							
							
							llvm-svn: 172461 
							
						 
						
							2013-01-14 20:56:22 +00:00  
				
					
						
							
							
								 
						
							
								1afbabab32 
								
							 
						 
						
							
							
								
								Fix string conversions functions to throw out_of_range properly.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=14919 .  
							
							... 
							
							
							
							llvm-svn: 172447 
							
						 
						
							2013-01-14 18:59:43 +00:00  
				
					
						
							
							
								 
						
							
								3778f27b23 
								
							 
						 
						
							
							
								
								Michael van der Westhuizen: Improve support for testing on Linux.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=14892 .  
							
							... 
							
							
							
							llvm-svn: 172436 
							
						 
						
							2013-01-14 17:12:54 +00:00  
				
					
						
							
							
								 
						
							
								f1e633c154 
								
							 
						 
						
							
							
								
								Michael van der Westhuizen:  Patches for Linux.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=14648 .  
							
							... 
							
							
							
							llvm-svn: 172435 
							
						 
						
							2013-01-14 17:07:27 +00:00  
				
					
						
							
							
								 
						
							
								8d9aec8802 
								
							 
						 
						
							
							
								
								Fix exception safety bug in vector::push_back  
							
							... 
							
							
							
							llvm-svn: 172250 
							
						 
						
							2013-01-11 20:36:59 +00:00  
				
					
						
							
							
								 
						
							
								4476100a2f 
								
							 
						 
						
							
							
								
								Made test output iterators have value_type of 'void'; matches ones in library  
							
							... 
							
							
							
							llvm-svn: 171980 
							
						 
						
							2013-01-09 17:20:02 +00:00  
				
					
						
							
							
								 
						
							
								322270842c 
								
							 
						 
						
							
							
								
								Move common header files into a 'support' directory; make 'testit' include -I to that directory; rename 'iterators.h' to 'iterator_test.h'; remove hard-coded paths to include files from more than 350 source files  
							
							... 
							
							
							
							llvm-svn: 171594 
							
						 
						
							2013-01-05 03:21:01 +00:00  
				
					
						
							
							
								 
						
							
								114676622f 
								
							 
						 
						
							
							
								
								atomic_bool was missing (just a typedef to atomic<bool>).  
							
							... 
							
							
							
							llvm-svn: 171498 
							
						 
						
							2013-01-04 18:58:50 +00:00  
				
					
						
							
							
								 
						
							
								f8c2b82337 
								
							 
						 
						
							
							
								
								...and then there was one. Only one copy of 'iterators.h' in the test tree for libc++  
							
							... 
							
							
							
							llvm-svn: 171479 
							
						 
						
							2013-01-04 18:24:04 +00:00  
				
					
						
							
							
								 
						
							
								f941359201 
								
							 
						 
						
							
							
								
								Removed another copy of  'iterators.h' files in libcxx/test  
							
							... 
							
							
							
							llvm-svn: 171456 
							
						 
						
							2013-01-03 03:57:56 +00:00  
				
					
						
							
							
								 
						
							
								cf1589f749 
								
							 
						 
						
							
							
								
								Removed several more different 'iterators.h' files in libcxx/test  
							
							... 
							
							
							
							llvm-svn: 171452 
							
						 
						
							2013-01-03 02:29:29 +00:00  
				
					
						
							
							
								 
						
							
								9b726d242f 
								
							 
						 
						
							
							
								
								Removed 7 (of 8) different 'iterators.h' files in test/localization  
							
							... 
							
							
							
							llvm-svn: 171443 
							
						 
						
							2013-01-03 01:45:09 +00:00  
				
					
						
							
							
								 
						
							
								861f006d3f 
								
							 
						 
						
							
							
								
								Klaas de Vries:  Fix bug in libc++'s std::string::find_first_not_of.  
							
							... 
							
							
							
							llvm-svn: 171321 
							
						 
						
							2012-12-31 20:09:48 +00:00  
				
					
						
							
							
								 
						
							
								d15de653f0 
								
							 
						 
						
							
							
								
								Test case for  http://llvm.org/bugs/show_bug.cgi?id=14670 .  
							
							... 
							
							
							
							llvm-svn: 170706 
							
						 
						
							2012-12-20 16:50:07 +00:00  
				
					
						
							
							
								 
						
							
								36a60721ce 
								
							 
						 
						
							
							
								
								Added static_assert to std::get<N>(std::array) calls to catch "out of bounds" calls  
							
							... 
							
							
							
							llvm-svn: 170435 
							
						 
						
							2012-12-18 16:46:30 +00:00  
				
					
						
							
							
								 
						
							
								16694b5df5 
								
							 
						 
						
							
							
								
								Zhang Xiongpang:  Add definitions for const data members.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=14585 .  
							
							... 
							
							
							
							llvm-svn: 170026 
							
						 
						
							2012-12-12 21:14:28 +00:00  
				
					
						
							
							
								 
						
							
								9f4328b173 
								
							 
						 
						
							
							
								
								Modify testit to use the local headers and lib.  Thanks go to Jeffrey Yasskin.  
							
							... 
							
							
							
							llvm-svn: 169686 
							
						 
						
							2012-12-09 00:12:14 +00:00  
				
					
						
							
							
								 
						
							
								7c4b853e74 
								
							 
						 
						
							
							
								
								tests/lit: Change test default parameters to assume local build.  
							
							... 
							
							
							
							- Also, support overriding them with lit parameters.
llvm-svn: 168749 
							
						 
						
							2012-11-27 23:56:28 +00:00  
				
					
						
							
							
								 
						
							
								c43826f003 
								
							 
						 
						
							
							
								
								Add overflow check to tanh(complex) and reduce to finite answer.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=13874  
							
							... 
							
							
							
							llvm-svn: 164266 
							
						 
						
							2012-09-19 23:51:47 +00:00  
				
					
						
							
							
								 
						
							
								c51171e0e9 
								
							 
						 
						
							
							
								
								Loosen up the timing requirements on 4 more tests.  
							
							... 
							
							
							
							llvm-svn: 161289 
							
						 
						
							2012-08-04 00:47:42 +00:00  
				
					
						
							
							
								 
						
							
								fb2f0a5e01 
								
							 
						 
						
							
							
								
								Andrew Morrow: There are two tests under test/utilities/memory that heap allocate two  
							
							... 
							
							
							
							integers which remain unused and are subsequently leaked, so the test
fail when run under valgrind. Unless I'm overlooking a subtle reason
why they are needed I think they can be removed, allowing these tests
to pass under valgrind. The attached patch removes the variables. If
there is a reason for them to exist, I can change this to just delete
them at the end of the test.
llvm-svn: 161195 
							
						 
						
							2012-08-02 18:39:48 +00:00  
				
					
						
							
							
								 
						
							
								c1a45fb70f 
								
							 
						 
						
							
							
								
								Andrew Morrow: The attached patch updates the lit.config for libc++ unit tests so  
							
							... 
							
							
							
							that the valgrind configuration passed to lit.py is used to run .pass
tests.
llvm-svn: 161193 
							
						 
						
							2012-08-02 18:36:47 +00:00  
				
					
						
							
							
								 
						
							
								a30af5f7cd 
								
							 
						 
						
							
							
								
								Andrew Morrow: This patch fixes  
							
							... 
							
							
							
							test/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp
to accept '(nil)' as a valid representation for NULL so that the test
passes on Linux. The same thing is already done in some other tests,
like in /test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp.
llvm-svn: 161188 
							
						 
						
							2012-08-02 18:12:06 +00:00  
				
					
						
							
							
								 
						
							
								d77851e837 
								
							 
						 
						
							
							
								
								Implement [util.smartptr.shared.atomic].  This is the last unimplemented  
							
							... 
							
							
							
							section in libc++.  This requires a recompiled dylib.  Failure to rebuild
the dylib will result in a link-time error if and only if the functions from
[util.smartptr.shared.atomic] are used.
The implementation is not lock free.  After considerable thought, I know of no
way to make the implementation lock free.  Ideas welcome along that front.  But
changing the ABI of shared_ptr is not on the table at this point.
The mutex used to lock these function is encapsulated by std::__sp_mut.  The
only thing the client knows about std::__sp_mut is that it has a void* data
member, can't be constructed, and has lock and unlock members.  Within the
binary __sp_mut is currently implemented as a pointer to a std::mutex.  That can
change in the future without disturbing the ABI (as long as sizeof(__sp_mut)
remains constant.
I specifically did not make __sp_mut a spin lock as I have a pathological
distrust of spin locks.  Testing on OS X reveals that the use of std::mutex in
this role is not a large performance penalty as long as the contention for the
mutex is low (more likely to get the lock than to have to wait).  In the future
we can still make __sp_mut a spin lock if that is what is desired (without ABI
damage).
The dylib contains 16 __sp_mut's to be chosen based on the hash of the address
of the shared_ptr.  The constant 16 is a ball-park reasonable space/time
tradeoff.
std::hash<T*> was changed to call __murmur2_or_cityhash, instead of the identity
function.  I had thought we had already done this, but I was mistaken.
All of this is under #if __has_feature(cxx_atomic) even though the
implementation is not lock free, because the signatures require access to
std::memory_order, which is currently available only under
__has_feature(cxx_atomic).
llvm-svn: 160940 
							
						 
						
							2012-07-30 01:40:57 +00:00  
				
					
						
							
							
								 
						
							
								a1d07d57a7 
								
							 
						 
						
							
							
								
								<algorithm> no longer needs to include <cstdlib>, but can get away with just <cstddef>.  This was brought to my attention by Salvatore Benedetto in his port to a bare-metal coretex-m3.  This exposed two test bugs where an explicit #include <cstdlib> was needed.  
							
							... 
							
							
							
							llvm-svn: 160786 
							
						 
						
							2012-07-26 17:09:09 +00:00  
				
					
						
							
							
								 
						
							
								02e610ef34 
								
							 
						 
						
							
							
								
								noexcept and constexpr applied to <mutex>.  
							
							... 
							
							
							
							llvm-svn: 160604 
							
						 
						
							2012-07-21 16:13:09 +00:00  
				
					
						
							
							
								 
						
							
								5d926bf1b8 
								
							 
						 
						
							
							
								
								noexcept and constexpr applied to <ios>.  
							
							... 
							
							
							
							llvm-svn: 160593 
							
						 
						
							2012-07-21 01:03:40 +00:00  
				
					
						
							
							
								 
						
							
								f4e11de8e8 
								
							 
						 
						
							
							
								
								constexpr applied to <complex>.  
							
							... 
							
							
							
							llvm-svn: 160585 
							
						 
						
							2012-07-20 22:18:27 +00:00  
				
					
						
							
							
								 
						
							
								11ac39722c 
								
							 
						 
						
							
							
								
								Relax the tolerances on some timing tests.  
							
							... 
							
							
							
							llvm-svn: 160566 
							
						 
						
							2012-07-20 19:48:05 +00:00  
				
					
						
							
							
								 
						
							
								8e882dcb2e 
								
							 
						 
						
							
							
								
								noexcept applied to <iterator>.  
							
							... 
							
							
							
							llvm-svn: 160565 
							
						 
						
							2012-07-20 19:36:34 +00:00  
				
					
						
							
							
								 
						
							
								397717b7c8 
								
							 
						 
						
							
							
								
								constexpr applied to <array>.  
							
							... 
							
							
							
							llvm-svn: 160564 
							
						 
						
							2012-07-20 19:20:49 +00:00  
				
					
						
							
							
								 
						
							
								403845ba75 
								
							 
						 
						
							
							
								
								Relax the complete-type checks that are happening under __invokable<Fp, Args...> to only check Fp, and not Args... .  This should be sufficient to give the desired high quality diagnostics under both bind and function.  And this allows a test reported by Rich E on cfe-dev to pass.  Tracked by <rdar://problem/11880602>.  
							
							... 
							
							
							
							llvm-svn: 160285 
							
						 
						
							2012-07-16 16:17:34 +00:00  
				
					
						
							
							
								 
						
							
								c033115394 
								
							 
						 
						
							
							
								
								Applied constexpr to <chrono>.  
							
							... 
							
							
							
							llvm-svn: 160184 
							
						 
						
							2012-07-13 19:17:27 +00:00  
				
					
						
							
							
								 
						
							
								9146984e73 
								
							 
						 
						
							
							
								
								Fixed a bug in wstring_convert concerning zero-length inputs.  Thanks to Jonathan Coxhead for reporting this bug.  
							
							... 
							
							
							
							llvm-svn: 160136 
							
						 
						
							2012-07-12 18:07:41 +00:00  
				
					
						
							
							
								 
						
							
								38b99b025c 
								
							 
						 
						
							
							
								
								Add test for self-referencing emplace test.  
							
							... 
							
							
							
							llvm-svn: 159921 
							
						 
						
							2012-07-09 02:47:43 +00:00  
				
					
						
							
							
								 
						
							
								eeac9fcfb7 
								
							 
						 
						
							
							
								
								Apply constexpr to <bitset>.  
							
							... 
							
							
							
							llvm-svn: 159899 
							
						 
						
							2012-07-07 17:04:52 +00:00  
				
					
						
							
							
								 
						
							
								a62ebe043e 
								
							 
						 
						
							
							
								
								Give tuple a constexpr default constructor.  
							
							... 
							
							
							
							llvm-svn: 159857 
							
						 
						
							2012-07-06 20:39:45 +00:00  
				
					
						
							
							
								 
						
							
								227001d12e 
								
							 
						 
						
							
							
								
								Add noexcept test for offsetof macro per [support.types]/p4.  
							
							... 
							
							
							
							llvm-svn: 159846 
							
						 
						
							2012-07-06 18:39:01 +00:00  
				
					
						
							
							
								 
						
							
								4cb38a82a2 
								
							 
						 
						
							
							
								
								This commit establishes a new bucket_count policy in the unordered containers:  The policy now allows a power-of-2 number of buckets to be requested (and that request honored) by the client.  And if the number of buckets is set to a power of 2, then the constraint of the hash to the number of buckets uses & instead of %.  If the client does not specify a number of buckets, then the policy remains unchanged:  a prime number of buckets is selected.  The growth policy is that the number of buckets is roughly doubled when needed.  While growing, either the prime, or the power-of-2 strategy will be preserved.  There is a small run time cost for putting in this switch.  For very cheap hash functions, e.g. identity for int, the cost can be as high as 18%.  However with more typical use cases, e.g. strings, the cost is in the noise level.  I've measured cases with very cheap hash functions (int) that using a power-of-2 number of buckets can make look up about twice as fast.  However I've also noted that a power-of-2 number of buckets is more susceptible to accidental catastrophic collisions.  Though I've also noted that accidental catastrophic collisions are also possible when using a prime number of buckets (but seems far less likely).  In short, this patch adds an extra tuning knob for those clients trying to get the last bit of performance squeezed out of their hash containers.  Casual users of the hash containers will not notice the introduction of this tuning knob.  Those clients who swear by power-of-2 hash containers can now opt-in to that strategy.  Clients who prefer a prime number of buckets can continue as they have.  
							
							... 
							
							
							
							llvm-svn: 159836 
							
						 
						
							2012-07-06 17:31:14 +00:00  
				
					
						
							
							
								 
						
							
								0bc272cf9a 
								
							 
						 
						
							
							
								
								Fix a few testsuite bugs involving trailing null (or lack thereof) in strstream.  
							
							... 
							
							
							
							llvm-svn: 157832 
							
						 
						
							2012-06-01 20:02:59 +00:00  
				
					
						
							
							
								 
						
							
								8b805c915a 
								
							 
						 
						
							
							
								
								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()).  
							
							... 
							
							
							
							llvm-svn: 157503 
							
						 
						
							2012-05-25 22:04:21 +00:00  
				
					
						
							
							
								 
						
							
								99f15d6eb7 
								
							 
						 
						
							
							
								
								libc++: Add some missing #includes to atomics tests. libc++ doesn't need these  
							
							... 
							
							
							
							at the moment, but they allow these tests to be used to test clang against
libstdc++. Add myself to the credits file, as suggested by Howard.
llvm-svn: 155085 
							
						 
						
							2012-04-19 00:50:47 +00:00  
				
					
						
							
							
								 
						
							
								4fa71de024 
								
							 
						 
						
							
							
								
								Fix the remaining atomic tests, all of which were wrong for the case where a  
							
							... 
							
							
							
							compare-and-exchange failed (it should update the expected value to the current
value, and the tests were checking that it didn't...).
Results of the atomics part of the test suite on FreeBSD with clang trunk and
the atomic.c from compiler-rt (currently kludged into the test, not installed
properly):
****************************************************
Results for /root/libc++/test/atomics:
using clang version 3.1 (trunk 153415)
Target: x86_64-unknown-freebsd10.0
Thread model: posix
with -std=c++0x -stdlib=libc++ -pthread /tmp/atomic.o  
----------------------------------------------------
sections without tests   : 0
sections with failures   : 0
sections without failures: 14
                       +   ----
total number of sections : 14
----------------------------------------------------
number of tests failed   : 0
number of tests passed   : 52
                       +   ----
total number of tests    : 52
****************************************************
Yay!
llvm-svn: 154095 
							
						 
						
							2012-04-05 13:48:16 +00:00  
				
					
						
							
							
								 
						
							
								ca917f5342 
								
							 
						 
						
							
							
								
								Fix test cases that were trying to make atomic things that are not trivially copyable.  
							
							... 
							
							
							
							Now all of the test cases compile.  Some of them even run!
llvm-svn: 154094 
							
						 
						
							2012-04-05 13:23:08 +00:00  
				
					
						
							
							
								 
						
							
								e386b7b360 
								
							 
						 
						
							
							
								
								Update <random> with constexpr support.  Patch contributed by Jonathan Sauer.  
							
							... 
							
							
							
							llvm-svn: 153896 
							
						 
						
							2012-04-02 21:00:45 +00:00  
				
					
						
							
							
								 
						
							
								e8df82fa1a 
								
							 
						 
						
							
							
								
								Fix test for default constructor of discrete_distribution.  This partially addresses  http://llvm.org/bugs/show_bug.cgi?id=12436 .  
							
							... 
							
							
							
							llvm-svn: 153873 
							
						 
						
							2012-04-02 15:00:14 +00:00  
				
					
						
							
							
								 
						
							
								0527c6207a 
								
							 
						 
						
							
							
								
								I believe tuple is still under development in the standard.  Daniel Krugler is/will be making convincing arguments that a modified form of LWG 2051 (currently NAD Future) is easily acheivable and desirable.  He has demonstrated that a tuple<T...> where all of the T are implicitly convertible from U... should have a tuple constructor that is also implicit, instead of explicit.  This would support the use cases in LWG 2051 while not undermining T... with explicit conversions from U....  This check-in is an experimental implementation of Daniel's work.  I believe this work to be mature enough to warrant inclusion into libc++.  If anyone sees real-world problems that this check in causes, please let me know and I will revert it, and provide the feedback to the LWG.  
							
							... 
							
							
							
							llvm-svn: 153855 
							
						 
						
							2012-04-01 23:10:42 +00:00  
				
					
						
							
							
								 
						
							
								b2f52bb982 
								
							 
						 
						
							
							
								
								Allow libc++ to be built with CMake from within the LLVM tree. The libc++ part is just some renaming as the variable  was already in use, conflicting with something else in the LLVM tree.  Contributed by Ruben Van Boxem.  
							
							... 
							
							
							
							llvm-svn: 153036 
							
						 
						
							2012-03-19 15:40:23 +00:00  
				
					
						
							
							
								 
						
							
								2f4cb4d79d 
								
							 
						 
						
							
							
								
								Don't refer to a function that doesn't exist in the quick_exit test.  
							
							... 
							
							
							
							llvm-svn: 152716 
							
						 
						
							2012-03-14 14:02:15 +00:00  
				
					
						
							
							
								 
						
							
								9c95b19f9e 
								
							 
						 
						
							
							
								
								Fix moneypunct_byname algorithm to more accurately represent C locales in C++.  
							
							... 
							
							
							
							llvm-svn: 152501 
							
						 
						
							2012-03-10 18:31:43 +00:00  
				
					
						
							
							
								 
						
							
								66d4573786 
								
							 
						 
						
							
							
								
								Make the failure reporting in testit a bit more useful.  
							
							... 
							
							
							
							llvm-svn: 151719 
							
						 
						
							2012-02-29 13:00:44 +00:00  
				
					
						
							
							
								 
						
							
								26bba442ac 
								
							 
						 
						
							
							
								
								update test for explicit bool operator.  
							
							... 
							
							
							
							llvm-svn: 151461 
							
						 
						
							2012-02-25 21:43:14 +00:00  
				
					
						
							
							
								 
						
							
								167d0fbb8a 
								
							 
						 
						
							
							
								
								Silence some warnings in a test.  
							
							... 
							
							
							
							llvm-svn: 151451 
							
						 
						
							2012-02-25 20:04:11 +00:00  
				
					
						
							
							
								 
						
							
								8d01935c09 
								
							 
						 
						
							
							
								
								Hook up to the new clang __is_trivially_constructible and __is_trivially_assignable traits.  Fixes r10925427 and  http://llvm.org/bugs/show_bug.cgi?id=12038 .  
							
							... 
							
							
							
							llvm-svn: 151406 
							
						 
						
							2012-02-24 23:32:26 +00:00  
				
					
						
							
							
								 
						
							
								d9d5b4492b 
								
							 
						 
						
							
							
								
								Use Xcode relative compilers when possible  
							
							... 
							
							
							
							llvm-svn: 151108 
							
						 
						
							2012-02-22 00:20:30 +00:00  
				
					
						
							
							
								 
						
							
								67f3964766 
								
							 
						 
						
							
							
								
								Modernize relational operators for shared_ptr and unique_ptr.  This includes adding support for nullptr, and using less<T*>.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=12056 .  
							
							... 
							
							
							
							llvm-svn: 151084 
							
						 
						
							2012-02-21 21:02:58 +00:00  
				
					
						
							
							
								 
						
							
								08487f51b7 
								
							 
						 
						
							
							
								
								Relax pointer output test to accept glibc's output.  Patch supplied by Jeffrey Yasskin.  
							
							... 
							
							
							
							llvm-svn: 150927 
							
						 
						
							2012-02-19 14:51:01 +00:00  
				
					
						
							
							
								 
						
							
								c7cf23e4bf 
								
							 
						 
						
							
							
								
								Exercise rvalue arguements to make_shared for C++11 mode.  
							
							... 
							
							
							
							llvm-svn: 150887 
							
						 
						
							2012-02-18 20:12:03 +00:00  
				
					
						
							
							
								 
						
							
								fa8df7db88 
								
							 
						 
						
							
							
								
								tuple was accidentally lacking a valid copy assignment operator.  It went undetected because I had failed to test assigning from a const lvalue.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=11921  
							
							... 
							
							
							
							llvm-svn: 150613 
							
						 
						
							2012-02-15 20:13:52 +00:00  
				
					
						
							
							
								 
						
							
								6560953383 
								
							 
						 
						
							
							
								
								Do not parse sign if a sign is not the next legal character when parsing floating point from an input stream.  Fixes  http://llvm.org/bugs/show_bug.cgi?id=11871  
							
							... 
							
							
							
							llvm-svn: 150609 
							
						 
						
							2012-02-15 19:19:37 +00:00  
				
					
						
							
							
								 
						
							
								fac8c8866d 
								
							 
						 
						
							
							
								
								Remove quotes from locale name identifier.  Credit Edward Meewis.  
							
							... 
							
							
							
							llvm-svn: 146655 
							
						 
						
							2011-12-15 15:01:38 +00:00  
				
					
						
							
							
								 
						
							
								f3d14a65ca 
								
							 
						 
						
							
							
								
								Starting using murmur2 when combining multiple size_t's into a single hash, and also for basic_string.  Also made hash<thread::id> ever so slighly more portable.  I had to tweak one test which is questionable (definitely not portable) anyway.  
							
							... 
							
							
							
							llvm-svn: 145795 
							
						 
						
							2011-12-05 00:08:45 +00:00  
				
					
						
							
							
								 
						
							
								1196716270 
								
							 
						 
						
							
							
								
								unord test fixes by Edward Meewis  
							
							... 
							
							
							
							llvm-svn: 145707 
							
						 
						
							2011-12-02 21:23:14 +00:00  
				
					
						
							
							
								 
						
							
								75689c1018 
								
							 
						 
						
							
							
								
								Fix  http://llvm.org/bugs/show_bug.cgi?id=11428 .  Fix provided by Alberto Ganesh Barbati  
							
							... 
							
							
							
							llvm-svn: 145698 
							
						 
						
							2011-12-02 19:36:40 +00:00  
				
					
						
							
							
								 
						
							
								05e485879c 
								
							 
						 
						
							
							
								
								Fix ratio arithmetic with zero  
							
							... 
							
							
							
							llvm-svn: 143519 
							
						 
						
							2011-11-01 23:13:37 +00:00  
				
					
						
							
							
								 
						
							
								1ed7df111b 
								
							 
						 
						
							
							
								
								Fix <rdar://problem/10256836> getline of an empty string mistakenly causes failure  
							
							... 
							
							
							
							llvm-svn: 141506 
							
						 
						
							2011-10-09 15:20:46 +00:00  
				
					
						
							
							
								 
						
							
								2a4812fd04 
								
							 
						 
						
							
							
								
								Fix <rdar://problem/10255403> match_results::begin() is off by one  
							
							... 
							
							
							
							llvm-svn: 141494 
							
						 
						
							2011-10-08 14:36:16 +00:00  
				
					
						
							
							
								 
						
							
								33a30f4159 
								
							 
						 
						
							
							
								
								Windows porting work by Ruben Van Boxem  
							
							... 
							
							
							
							llvm-svn: 141003 
							
						 
						
							2011-10-03 15:23:59 +00:00  
				
					
						
							
							
								 
						
							
								20dde1e8fb 
								
							 
						 
						
							
							
								
								Updated testit to run on Windows and fresh Windows results by Ruben Van Boxem  
							
							... 
							
							
							
							llvm-svn: 140950 
							
						 
						
							2011-10-01 15:34:27 +00:00  
				
					
						
							
							
								 
						
							
								920b56ca88 
								
							 
						 
						
							
							
								
								Another installment on debug mode.  This addresses list.  However this 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 
							
						 
						
							2011-09-27 23:55:03 +00:00  
				
					
						
							
							
								 
						
							
								cf50df9d94 
								
							 
						 
						
							
							
								
								Fix test bugs found by David Chisnall  
							
							... 
							
							
							
							llvm-svn: 140271 
							
						 
						
							2011-09-21 18:33:46 +00:00  
				
					
						
							
							
								 
						
							
								580eccb05a 
								
							 
						 
						
							
							
								
								Fix locales used in re tests.  
							
							... 
							
							
							
							llvm-svn: 140265 
							
						 
						
							2011-09-21 17:38:03 +00:00  
				
					
						
							
							
								 
						
							
								13bddcf1bc 
								
							 
						 
						
							
							
								
								Remove undefines in cstdio test.  Fix these properly rather than bodging the tests.  
							
							... 
							
							
							
							llvm-svn: 140264 
							
						 
						
							2011-09-21 17:37:18 +00:00  
				
					
						
							
							
								 
						
							
								ecccb1f868 
								
							 
						 
						
							
							
								
								More +.UTF-8 fixes.  
							
							... 
							
							
							
							llvm-svn: 140262 
							
						 
						
							2011-09-21 17:35:42 +00:00  
				
					
						
							
							
								 
						
							
								b996af1fe7 
								
							 
						 
						
							
							
								
								Fix failure found by David Chisnall  
							
							... 
							
							
							
							llvm-svn: 140255 
							
						 
						
							2011-09-21 16:42:32 +00:00  
				
					
						
							
							
								 
						
							
								71850c961d 
								
							 
						 
						
							
							
								
								More fixes to the tests.  Add UTF-8 encoding to all locales that don't specify one.  Undefine some stdio.h macros that break the tests.  
							
							... 
							
							
							
							llvm-svn: 140252 
							
						 
						
							2011-09-21 14:59:10 +00:00  
				
					
						
							
							
								 
						
							
								b25f615c58 
								
							 
						 
						
							
							
								
								Fully-qualify some more locales in the tests...  
							
							... 
							
							
							
							llvm-svn: 140251 
							
						 
						
							2011-09-21 14:48:49 +00:00  
				
					
						
							
							
								 
						
							
								1d9bdaa24d 
								
							 
						 
						
							
							
								
								Don't check STREAMS error numbers on systems that don't implement the obsolete (as described in POSIX2008) XSI STREAMS extension.  
							
							... 
							
							
							
							llvm-svn: 140248 
							
						 
						
							2011-09-21 12:23:11 +00:00  
				
					
						
							
							
								 
						
							
								8b053d5ec1 
								
							 
						 
						
							
							
								
								More locale cleanups.  Fully specify locales in iostream tests.  
							
							... 
							
							
							
							llvm-svn: 140247 
							
						 
						
							2011-09-21 12:09:17 +00:00  
				
					
						
							
							
								 
						
							
								e36a15db17 
								
							 
						 
						
							
							
								
								Localisation test fixes to make the tests pass on FreeBSD, which does not provide shortened forms of the various locales (e.g. en_US, rather than en_US.UTF-8 / en_US.ISO{whatever}).  
							
							... 
							
							
							
							Reviewed by Howard Hinnant.
llvm-svn: 140242 
							
						 
						
							2011-09-21 08:19:20 +00:00  
				
					
						
							
							
								 
						
							
								0695db06d7 
								
							 
						 
						
							
							
								
								The vector test suite now passes for no-debug, debug-lite and debug-regular  
							
							... 
							
							
							
							llvm-svn: 139930 
							
						 
						
							2011-09-16 18:41:29 +00:00  
				
					
						
							
							
								 
						
							
								00d8c245b2 
								
							 
						 
						
							
							
								
								Reimplemented much of <istream> such that single character extractions do not check to see if this is the last character in the stream and thus never set eofbit.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=10817  .  This fix requires a recompiled libc++.dylib to be fully implemented.  The recompiled libc++.dylib is ABI compatible with that shipped on Lion.  
							
							... 
							
							
							
							llvm-svn: 138961 
							
						 
						
							2011-09-01 21:02:45 +00:00  
				
					
						
							
							
								 
						
							
								54976f2619 
								
							 
						 
						
							
							
								
								Fixed PR10574:  http://llvm.org/bugs/show_bug.cgi?id=10574  
							
							... 
							
							
							
							llvm-svn: 137522 
							
						 
						
							2011-08-12 21:56:02 +00:00  
				
					
						
							
							
								 
						
							
								09ddc43442 
								
							 
						 
						
							
							
								
								Correct test.  
							
							... 
							
							
							
							llvm-svn: 135460 
							
						 
						
							2011-07-19 01:07:49 +00:00  
				
					
						
							
							
								 
						
							
								2405470f01 
								
							 
						 
						
							
							
								
								Adjust two tests to account for a nasty change in copying behavior  
							
							... 
							
							
							
							between C++03 and C++0x and its effect on exceptions, and another two to
not test move construction when rvalue references are not available.
llvm-svn: 135445 
							
						 
						
							2011-07-18 23:51:25 +00:00  
				
					
						
							
							
								 
						
							
								483cf24547 
								
							 
						 
						
							
							
								
								Make all fstream tests use tmpnam if creating files, rather than  
							
							... 
							
							
							
							hard-coded names.
llvm-svn: 135444 
							
						 
						
							2011-07-18 23:51:21 +00:00  
				
					
						
							
							
								 
						
							
								4c14ed75ee 
								
							 
						 
						
							
							
								
								Do a litmus test of using tmpnam to generate safe temporary file names  
							
							... 
							
							
							
							for the tests that open new data files.
llvm-svn: 135422 
							
						 
						
							2011-07-18 20:46:16 +00:00  
				
					
						
							
							
								 
						
							
								397d787642 
								
							 
						 
						
							
							
								
								Given that __underlying_type is now available in clang, implement  
							
							... 
							
							
							
							std::underlying_type.
llvm-svn: 135410 
							
						 
						
							2011-07-18 18:37:21 +00:00  
				
					
						
							
							
								 
						
							
								f3ff971561 
								
							 
						 
						
							
							
								
								Give A an explicitly non-throwing destructor so that B's destructor is  
							
							... 
							
							
							
							itself non-throwing.  Since nested_exception's destructor is
non-throwing, if B's destructor is not, this causes an error in C++03
mode due to the overriding function having a more lax specification.
This did not occur in C++0x mode as A's destructor was implicitly
non-throwing.
llvm-svn: 135400 
							
						 
						
							2011-07-18 17:07:53 +00:00  
				
					
						
							
							
								 
						
							
								bbe2b9dbc4 
								
							 
						 
						
							
							
								
								Fix wchar tests by not assuming that tm is complete and by using the  
							
							... 
							
							
							
							proper va_list time on non-darwin platforms.
llvm-svn: 135247 
							
						 
						
							2011-07-15 05:44:47 +00:00  
				
					
						
							
							
								 
						
							
								11af28bdbd 
								
							 
						 
						
							
							
								
								Fixing up some ABI issues  
							
							... 
							
							
							
							llvm-svn: 134639 
							
						 
						
							2011-07-07 21:03:52 +00:00  
				
					
						
							
							
								 
						
							
								dca31a7964 
								
							 
						 
						
							
							
								
								<inttypes.h> does not necessarily include <stdint.h>. Accordingly, do  
							
							... 
							
							
							
							not test for this.
llvm-svn: 134531 
							
						 
						
							2011-07-06 20:52:28 +00:00  
				
					
						
							
							
								 
						
							
								5a33687da0 
								
							 
						 
						
							
							
								
								Correct for new rules regarding implicitly deleted special members.  http://llvm.org/bugs/show_bug.cgi?id=10191  
							
							... 
							
							
							
							llvm-svn: 134248 
							
						 
						
							2011-07-01 19:24:36 +00:00  
				
					
						
							
							
								 
						
							
								878e035ea1 
								
							 
						 
						
							
							
								
								test for pair piecewise construction  
							
							... 
							
							
							
							llvm-svn: 133667 
							
						 
						
							2011-06-22 23:51:19 +00:00  
				
					
						
							
							
								 
						
							
								bd0c160078 
								
							 
						 
						
							
							
								
								noexcept for <stack>.  This completes noexcept for Chapter 23 [containers].  
							
							... 
							
							
							
							llvm-svn: 132652 
							
						 
						
							2011-06-04 22:09:19 +00:00  
				
					
						
							
							
								 
						
							
								6971d82668 
								
							 
						 
						
							
							
								
								noexcept for <queue>.  
							
							... 
							
							
							
							llvm-svn: 132650 
							
						 
						
							2011-06-04 21:32:33 +00:00  
				
					
						
							
							
								 
						
							
								557da866a3 
								
							 
						 
						
							
							
								
								noexcept for <unordered_set>.  
							
							... 
							
							
							
							llvm-svn: 132647 
							
						 
						
							2011-06-04 20:18:37 +00:00  
				
					
						
							
							
								 
						
							
								3714107ed6 
								
							 
						 
						
							
							
								
								noexcept for <unordered_map>.  
							
							... 
							
							
							
							llvm-svn: 132646 
							
						 
						
							2011-06-04 18:54:24 +00:00  
				
					
						
							
							
								 
						
							
								0e9f71c13f 
								
							 
						 
						
							
							
								
								noexcept for <set>.  Plus a few fixes to noexcept for <map>.  
							
							... 
							
							
							
							llvm-svn: 132640 
							
						 
						
							2011-06-04 15:22:34 +00:00  
				
					
						
							
							
								 
						
							
								1052ee39cb 
								
							 
						 
						
							
							
								
								noexcept for <map>.  
							
							... 
							
							
							
							llvm-svn: 132639 
							
						 
						
							2011-06-04 14:31:57 +00:00  
				
					
						
							
							
								 
						
							
								3297ed7065 
								
							 
						 
						
							
							
								
								noexcept for <vector>.  This also includes installing move_if_noexcept() into vector.  
							
							... 
							
							
							
							llvm-svn: 132577 
							
						 
						
							2011-06-03 19:40:40 +00:00  
				
					
						
							
							
								 
						
							
								2d45a18c24 
								
							 
						 
						
							
							
								
								Bring noexcept for <string> inline with other containers.  
							
							... 
							
							
							
							llvm-svn: 132573 
							
						 
						
							2011-06-03 18:40:47 +00:00  
				
					
						
							
							
								 
						
							
								4590010473 
								
							 
						 
						
							
							
								
								noexcept for <list>.  
							
							... 
							
							
							
							llvm-svn: 132562 
							
						 
						
							2011-06-03 17:30:28 +00:00  
				
					
						
							
							
								 
						
							
								91a4750733 
								
							 
						 
						
							
							
								
								noexcept for <forward_list>.  
							
							... 
							
							
							
							llvm-svn: 132553 
							
						 
						
							2011-06-03 16:20:53 +00:00  
				
					
						
							
							
								 
						
							
								801291139c 
								
							 
						 
						
							
							
								
								After sleeping on it I've decided that all special members that can be noexcept, should be declared so.  The client has the traits to detect and branch on this information, and it is often an important optimization.  Give deque() a noexcept.  Add test for deque default constructor and deque destructor.  
							
							... 
							
							
							
							llvm-svn: 132549 
							
						 
						
							2011-06-03 15:16:49 +00:00  
				
					
						
							
							
								 
						
							
								60954bbbbc 
								
							 
						 
						
							
							
								
								Add noexcept tests for deque.  
							
							... 
							
							
							
							llvm-svn: 132523 
							
						 
						
							2011-06-03 01:46:22 +00:00  
				
					
						
							
							
								 
						
							
								3739fe79e5 
								
							 
						 
						
							
							
								
								noexcept for <memory>.  I've added a few extension noexcept to:  allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const.  My rationale was:  If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept.  We're all a little new to noexcept, so things like this are to be expected.  Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|.  And fixed a test case for is_nothrow_destructible.  Destructors are now noexcept by default|  
							
							... 
							
							
							
							llvm-svn: 132261 
							
						 
						
							2011-05-28 14:41:13 +00:00