Howard Hinnant
f4e11de8e8
constexpr applied to <complex>.
...
llvm-svn: 160585
2012-07-20 22:18:27 +00:00
Howard Hinnant
11ac39722c
Relax the tolerances on some timing tests.
...
llvm-svn: 160566
2012-07-20 19:48:05 +00:00
Howard Hinnant
8e882dcb2e
noexcept applied to <iterator>.
...
llvm-svn: 160565
2012-07-20 19:36:34 +00:00
Howard Hinnant
397717b7c8
constexpr applied to <array>.
...
llvm-svn: 160564
2012-07-20 19:20:49 +00:00
Howard Hinnant
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
Howard Hinnant
c033115394
Applied constexpr to <chrono>.
...
llvm-svn: 160184
2012-07-13 19:17:27 +00:00
Howard Hinnant
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
Howard Hinnant
38b99b025c
Add test for self-referencing emplace test.
...
llvm-svn: 159921
2012-07-09 02:47:43 +00:00
Howard Hinnant
eeac9fcfb7
Apply constexpr to <bitset>.
...
llvm-svn: 159899
2012-07-07 17:04:52 +00:00
Howard Hinnant
a62ebe043e
Give tuple a constexpr default constructor.
...
llvm-svn: 159857
2012-07-06 20:39:45 +00:00
Howard Hinnant
227001d12e
Add noexcept test for offsetof macro per [support.types]/p4.
...
llvm-svn: 159846
2012-07-06 18:39:01 +00:00
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
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
Richard Smith
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
David Chisnall
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
David Chisnall
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
Howard Hinnant
e386b7b360
Update <random> with constexpr support. Patch contributed by Jonathan Sauer.
...
llvm-svn: 153896
2012-04-02 21:00:45 +00:00
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
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
David Chisnall
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
Jeffrey Yasskin
9c95b19f9e
Fix moneypunct_byname algorithm to more accurately represent C locales in C++.
...
llvm-svn: 152501
2012-03-10 18:31:43 +00:00
David Chisnall
66d4573786
Make the failure reporting in testit a bit more useful.
...
llvm-svn: 151719
2012-02-29 13:00:44 +00:00
Howard Hinnant
26bba442ac
update test for explicit bool operator.
...
llvm-svn: 151461
2012-02-25 21:43:14 +00:00
Howard Hinnant
167d0fbb8a
Silence some warnings in a test.
...
llvm-svn: 151451
2012-02-25 20:04:11 +00:00
Howard Hinnant
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
Dave Zarzycki
d9d5b4492b
Use Xcode relative compilers when possible
...
llvm-svn: 151108
2012-02-22 00:20:30 +00:00
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
c7cf23e4bf
Exercise rvalue arguements to make_shared for C++11 mode.
...
llvm-svn: 150887
2012-02-18 20:12:03 +00:00
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
fac8c8866d
Remove quotes from locale name identifier. Credit Edward Meewis.
...
llvm-svn: 146655
2011-12-15 15:01:38 +00:00
Howard Hinnant
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
Howard Hinnant
1196716270
unord test fixes by Edward Meewis
...
llvm-svn: 145707
2011-12-02 21:23:14 +00:00
Howard Hinnant
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
Howard Hinnant
05e485879c
Fix ratio arithmetic with zero
...
llvm-svn: 143519
2011-11-01 23:13:37 +00:00
Howard Hinnant
1ed7df111b
Fix <rdar://problem/10256836> getline of an empty string mistakenly causes failure
...
llvm-svn: 141506
2011-10-09 15:20:46 +00:00
Howard Hinnant
2a4812fd04
Fix <rdar://problem/10255403> match_results::begin() is off by one
...
llvm-svn: 141494
2011-10-08 14:36:16 +00:00
Howard Hinnant
33a30f4159
Windows porting work by Ruben Van Boxem
...
llvm-svn: 141003
2011-10-03 15:23:59 +00:00
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
cf50df9d94
Fix test bugs found by David Chisnall
...
llvm-svn: 140271
2011-09-21 18:33:46 +00:00
David Chisnall
580eccb05a
Fix locales used in re tests.
...
llvm-svn: 140265
2011-09-21 17:38:03 +00:00
David Chisnall
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
David Chisnall
ecccb1f868
More +.UTF-8 fixes.
...
llvm-svn: 140262
2011-09-21 17:35:42 +00:00
Howard Hinnant
b996af1fe7
Fix failure found by David Chisnall
...
llvm-svn: 140255
2011-09-21 16:42:32 +00:00
David Chisnall
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
David Chisnall
b25f615c58
Fully-qualify some more locales in the tests...
...
llvm-svn: 140251
2011-09-21 14:48:49 +00:00
David Chisnall
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
David Chisnall
8b053d5ec1
More locale cleanups. Fully specify locales in iostream tests.
...
llvm-svn: 140247
2011-09-21 12:09:17 +00:00
David Chisnall
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
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
54976f2619
Fixed PR10574: http://llvm.org/bugs/show_bug.cgi?id=10574
...
llvm-svn: 137522
2011-08-12 21:56:02 +00:00
Howard Hinnant
09ddc43442
Correct test.
...
llvm-svn: 135460
2011-07-19 01:07:49 +00:00
Alexis Hunt
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
Alexis Hunt
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
Alexis Hunt
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
Alexis Hunt
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
Alexis Hunt
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
Alexis Hunt
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
Howard Hinnant
11af28bdbd
Fixing up some ABI issues
...
llvm-svn: 134639
2011-07-07 21:03:52 +00:00
Alexis Hunt
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
Howard Hinnant
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
Howard Hinnant
878e035ea1
test for pair piecewise construction
...
llvm-svn: 133667
2011-06-22 23:51:19 +00:00
Howard Hinnant
bd0c160078
noexcept for <stack>. This completes noexcept for Chapter 23 [containers].
...
llvm-svn: 132652
2011-06-04 22:09:19 +00:00
Howard Hinnant
6971d82668
noexcept for <queue>.
...
llvm-svn: 132650
2011-06-04 21:32:33 +00:00
Howard Hinnant
557da866a3
noexcept for <unordered_set>.
...
llvm-svn: 132647
2011-06-04 20:18:37 +00:00
Howard Hinnant
3714107ed6
noexcept for <unordered_map>.
...
llvm-svn: 132646
2011-06-04 18:54:24 +00:00
Howard Hinnant
0e9f71c13f
noexcept for <set>. Plus a few fixes to noexcept for <map>.
...
llvm-svn: 132640
2011-06-04 15:22:34 +00:00
Howard Hinnant
1052ee39cb
noexcept for <map>.
...
llvm-svn: 132639
2011-06-04 14:31:57 +00:00
Howard Hinnant
3297ed7065
noexcept for <vector>. This also includes installing move_if_noexcept() into vector.
...
llvm-svn: 132577
2011-06-03 19:40:40 +00:00
Howard Hinnant
2d45a18c24
Bring noexcept for <string> inline with other containers.
...
llvm-svn: 132573
2011-06-03 18:40:47 +00:00
Howard Hinnant
4590010473
noexcept for <list>.
...
llvm-svn: 132562
2011-06-03 17:30:28 +00:00
Howard Hinnant
91a4750733
noexcept for <forward_list>.
...
llvm-svn: 132553
2011-06-03 16:20:53 +00:00
Howard Hinnant
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
Howard Hinnant
60954bbbbc
Add noexcept tests for deque.
...
llvm-svn: 132523
2011-06-03 01:46:22 +00:00
Howard Hinnant
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
Howard Hinnant
2344d6c195
Simplied bind using __invoke. In the process, found and fixed a couple of bugs. C++11 only.
...
llvm-svn: 131667
2011-05-19 19:41:47 +00:00
Howard Hinnant
c2bf9e1851
This commit was accidental. Reverting.
...
llvm-svn: 131514
2011-05-18 00:47:00 +00:00
Howard Hinnant
781afe1934
A bunch of future tests got invalidated with the latest updates to thread. Fixed the tests.
...
llvm-svn: 131509
2011-05-17 23:32:48 +00:00
Howard Hinnant
5fdeee5b3a
Fix and beef up test bug for move_if_noexcept
...
llvm-svn: 131483
2011-05-17 20:10:42 +00:00
Howard Hinnant
fe7e3eeddc
Clean up a bunch of warnings in the tests, 3 of which actually turned out to be test bugs.
...
llvm-svn: 131479
2011-05-17 19:12:55 +00:00
Howard Hinnant
872a91167e
Brought call_once variadic call up to current spec, which allows move-only functors and move-only arguments, but disallows functors with non-const lvalue reference parameters.
...
llvm-svn: 131414
2011-05-16 19:05:11 +00:00
Howard Hinnant
8df61ea84d
Brought thread variadic constructor up to current spec, which allows move-only functors and move-only arguments, but disallows functors with non-const lvalue reference parameters.
...
llvm-svn: 131413
2011-05-16 18:40:35 +00:00
Howard Hinnant
15c34d48ba
Redesign of result_of to handle reference-qualified member functions
...
llvm-svn: 131407
2011-05-16 16:17:21 +00:00
Howard Hinnant
af6c26b366
Warning suppression in test.
...
llvm-svn: 131344
2011-05-14 15:38:08 +00:00
Howard Hinnant
3962348edf
Warning suppression in test.
...
llvm-svn: 131343
2011-05-14 15:36:25 +00:00
Howard Hinnant
6c4c6a8047
Warning suppression in test.
...
llvm-svn: 131341
2011-05-14 14:53:12 +00:00
Howard Hinnant
c6b9ff1169
Correction to hexfloat hack.
...
llvm-svn: 131340
2011-05-14 14:33:56 +00:00
Howard Hinnant
e0d67710e9
Fix test bug.
...
llvm-svn: 131328
2011-05-14 00:07:53 +00:00
Howard Hinnant
fe7cffaf57
Suppress some warings in the tests.
...
llvm-svn: 131327
2011-05-14 00:04:05 +00:00
Howard Hinnant
a7fa0710cb
Suppress some warings in the tests.
...
llvm-svn: 131326
2011-05-13 23:59:50 +00:00
Howard Hinnant
fb7f07e3bd
http://llvm.org/bugs/show_bug.cgi?id=9854 . Also created an emulated hexfloat literal for use in some of the tests. <sigh> And cleaned up some harmless but irritating warnings in the tests.
...
llvm-svn: 131318
2011-05-13 21:52:40 +00:00
Howard Hinnant
467fc38320
A much improved type_traits for C++0x. Not yet done: is_trivially_constructible, is_trivially_assignable and underlying_type.
...
llvm-svn: 131291
2011-05-13 14:08:16 +00:00
Howard Hinnant
f738497500
Corrected some bugs in both memory and the tests. Preparing for being able to turn on support for alias templates.
...
llvm-svn: 131199
2011-05-11 20:21:19 +00:00
Howard Hinnant
a23551cad4
Fix bug in Sseq constraints found by Seth Cantrell
...
llvm-svn: 129285
2011-04-11 18:22:12 +00:00
Howard Hinnant
e4b11156d7
Corrected tests for http://llvm.org/bugs/show_bug.cgi?id=9351
...
llvm-svn: 128807
2011-04-04 01:42:30 +00:00