6287c65a03Remove cv qualifiers from member pointers in the __member_pointer_traits test. This was causing a const-qualified bind result to malfunction. This was a recent regression due to the new use of __member_pointer_traits in restricting the __invokable and __invoke_of tests.
Howard Hinnant
2013-05-15 21:49:27 +0000
e27e907403Fixing the MSan/compiler-rt build
David Blaikie
2013-05-13 21:53:44 +0000
b3585e8226İsmail Dönmez: Enable quick_exit on linux.
Howard Hinnant
2013-05-10 17:36:59 +0000
bb3a0acf93XFAIL this test when using the darwin12 system library. Reviewed by Howard
David Dean
2013-05-10 17:25:57 +0000
9f8f524541Fix incorrect type usage; nice catch by Sebastian
Marshall Clow
2013-05-10 00:16:10 +0000
be764c946cDon't try to free the C locale.
Joerg Sonnenberger
2013-05-09 23:06:35 +0000
5f1286f574Introduce _LIBCPP_STD_VER. This can be set by the client (or the clang driver). Or it will be defaulted. The default is 11 if -std= c++11 or eariler, else it will default to the current year modulo the century. We anticipate it defaulting to 14 for C++14 when the time comes. For now, post-C++11 libcxx implementations should protect themselves with #if _LIBCPP_STD_VER > 11.
Howard Hinnant
2013-05-07 20:16:13 +0000
dd854b2c4eMark some tests with XFAIL for Lion and Mountain Lion.
Howard Hinnant
2013-05-07 17:37:19 +0000
db2b81bf90Creating the libcxx release 3.3 branch.
release_33
Bill Wendling
2013-05-07 00:25:14 +0000
74f4da7219Stephan Tolksdorf: fixes the issue in the <atomic> header and adds corresponding tests. I've used macros to fall back to a user-provided default constructor if _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS (though I suspect that there won't be many users defining that macro).
Howard Hinnant
2013-05-02 20:18:43 +0000
e58bc12f2aThe push/pop variant of pragma GCC diagnostic is only supported by Clang and GCC 4.6 and newer, so protect accordingly.
Joerg Sonnenberger
2013-05-02 19:34:26 +0000
34cb066fa2Make it possible to provide special (linker) flags for the thread tests. Use it to build & link against libpthread on NetBSD for tests iff they are testing the thread interface.
Joerg Sonnenberger
2013-05-02 19:21:36 +0000
63d8f7e341Add explicit casts to unsigned char before calling ctype functions. Fixes the value range on platforms with signed char.
Joerg Sonnenberger
2013-05-02 19:17:48 +0000
15467189c3This patch introduces an alternative layout for basic_string which when the string is short, the data pointer will be word-aligned. It can be activated with -D_LIBCPP_ALTERNATE_STRING_LAYOUT. These two different layouts (the default and _LIBCPP_ALTERNATE_STRING_LAYOUT) are not ABI compatible with each other. Once one is chosen for a given platform, it is disruptive to change it.
Howard Hinnant
2013-04-30 21:44:48 +0000
867deb8e06Add entry for myself.
Joerg Sonnenberger
2013-04-29 19:55:32 +0000
155f06018eUse protected version of the malloc attribute in case source wants to define malloc as macro.
Joerg Sonnenberger
2013-04-29 19:52:08 +0000
a9b94f1337GCC doesn't support __has_attribute.
Joerg Sonnenberger
2013-04-27 20:51:42 +0000
a5f0e6c5c1İsmail Dönmez: Change to mktemp template to make it compatible with Linux.
Howard Hinnant
2013-04-25 16:08:55 +0000
05e7d24b3ddefault_delete needs a static_assert against void types. I had previously thought that sizeof(void) would take care of this. I was wrong.
Howard Hinnant
2013-04-24 19:44:26 +0000
c5e6aa5f5cAvoid bash specific functionality to work with any POSIX shell implementing $(( )).
Joerg Sonnenberger
2013-04-23 19:53:24 +0000
f9e75aef34Change makefile comment to refer to libc++ instead of libcpp.
Bob Wilson
2013-04-23 19:26:55 +0000
9493e27c0fPR15820: Use tar instead of rsync to install the headers.
Bob Wilson
2013-04-23 18:51:51 +0000
c52fb8d7bfPR12597: Remove "chown -R root:wheel" from the makefile.
Bob Wilson
2013-04-23 17:30:35 +0000
9c2ce95063Zero-initialize all mbstate_t in the codecvt tests.
Howard Hinnant
2013-04-23 14:09:35 +0000
08dd25303eModest performance improvement for std::string's operator==.
Howard Hinnant
2013-04-22 23:55:13 +0000
5544f7e0c7Somehow aligned_union got dropped through the cracks. This adds it. Did a drive-by fix of alignment_of while I was in the neighborhood.
Howard Hinnant
2013-04-22 19:37:49 +0000
b4e67cfd42After years of telling people: 'If you ever find any of my code that self-move-assigns, send me a bug report.' Somebody finally took me up on it. vector::erase(begin(), begin()) does a self-move-assign of every element in the vector, leaving all of those elements in an unspecified state. I checked the other containers for this same bug and did not find it. Added test case.
Howard Hinnant
2013-04-18 15:02:57 +0000
2062f37772I believe this finishes up debug mode for list. The testing is a little weak, but I believe all of the functionality is there. Certainly enough for people to checkout and start beating up on.
Howard Hinnant
2013-04-16 21:42:36 +0000
993248935cAccidentally disallowed explicit tuple conversions when all elements of the tuple can be explicitly converted.
Howard Hinnant
2013-04-14 00:01:13 +0000
4f67100219Set failbit when strtold sets errno to ERANGE when parsing floating point values.
Howard Hinnant
2013-04-13 18:19:25 +0000
a5733b3ad3Ruben Van Boxem: Turn islower_l and isupper_l into functions (instead of macros) on Windows only to quell a warning during libc++ building.
Howard Hinnant
2013-04-12 20:22:57 +0000
0795931deeChange <cwchar> and <cstring> to look out for flags which may or may not be set by the C headers <wchar.h> and <string.h> indicating C support for the C++-altered wcschr, wcspbrk, wcsrchr, wcsstr, wmemchr, strchr, strpbrk, strrchr, memchr, and strstr. This was already done in <cstring> for other platforms using other flags, so just had to add one more flag to the list there.
Howard Hinnant
2013-04-08 18:59:28 +0000
6dcaf3ee1aFix bug in __libcpp_db::__iterator_copy. Add debug test for swaping lists.
Howard Hinnant
2013-04-05 17:58:52 +0000
e1e96cb840More list debug mode tests.
Howard Hinnant
2013-04-05 15:04:10 +0000
79a35570a5More work on debug mode for list.
Howard Hinnant
2013-04-05 00:18:49 +0000
4aa8b06e67The move / swap members were not correctly taking all of the possible states of the basic_stringbuf into account. Just rewrote these members. Test included. This fixes http://llvm.org/bugs/show_bug.cgi?id=15659.
Howard Hinnant
2013-04-03 20:21:29 +0000
b777d6a4b2The cmake script is failing to copy cxxabi.h to the right place because it was generating to destination path like so /include// and dstdir can legally be blank from my interpretation of the script, and this would then generate a path like libcxx/include// which is illegal.
Howard Hinnant
2013-04-02 21:33:01 +0000
11a50ac497Richard Smith: It was pointed out to me off-list that libc++'s non-compiler-builtin implementation of std::is_polymorphic does this:
Howard Hinnant
2013-04-02 21:25:06 +0000
d4c96a6c89Some debug test cases for list.
Howard Hinnant
2013-04-02 19:53:32 +0000
8b25c00ef1The 3rd test in shrink_to_fit.pass.cpp can't possibly pass if exceptions are disabled, so #ifdef'ing out the test.
Howard Hinnant
2013-03-29 17:20:04 +0000
302fa82a1cI believe debug mode for vector<T> (T != bool) is complete. If anyone sees anything more they would like to see on it, please let me know. Debug mode is activated by compiling with -D_LIBCPP_DEBUG2=1. Eventually _LIBCPP_DEBUG2 will be renamed to just _LIBCPP_DEBUG.
Howard Hinnant
2013-03-28 20:35:29 +0000
db4d478ff4Fix a few warnings/errors for compiling with -fno-exceptions.
Howard Hinnant
2013-03-28 18:56:26 +0000
742fecbd2aSecond try at r178075. The llvm breakage has been fixed by r178240.
Howard Hinnant
2013-03-28 17:44:32 +0000
2c0d3edf68Add missing #ifndef _LIBCPP_NO_EXCEPTIONS around throw in include/thread.
Howard Hinnant
2013-03-28 15:00:04 +0000
34d36f39b0Revert r178075, "Tighten up the iterator requirements ...", it breaks LLVM bootstrap with libc++.
Daniel Dunbar
2013-03-27 04:10:25 +0000
32d40f5f44Tighten 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.
Howard Hinnant
2013-03-26 21:40:54 +0000
d1c0082675More vector debug tests.
Howard Hinnant
2013-03-26 15:45:56 +0000
c3a9b81e67Fixed race conditions in thread tests; exposed by UBSan
Marshall Clow
2013-03-26 15:28:33 +0000
3fbd1dfb24Simply debug mode tests per Dmitri Gribenko's suggestion.
Howard Hinnant
2013-03-26 14:28:25 +0000
d9cdb2dcfdNeed one more swap overload for swapping two lvalue vector<bool>::reference's.
Howard Hinnant
2013-03-26 13:48:57 +0000
782da33d1cAdded debug tests for indexing, pop_back and both forms of erase. Added an improved error message for erasing a single element with end().
Howard Hinnant
2013-03-25 22:12:26 +0000
c1ca2e1e8bRemove some erroneous code I was using to debug debug mode.
Howard Hinnant
2013-03-25 20:46:07 +0000
295891fdc2Debug mode tests for vector::front and back.
Howard Hinnant
2013-03-25 20:31:25 +0000
0d01eb54e7More vector::iterator debug mode tests. Run by adding to OPTIONS -D_LIBCPP_DEBUG2=1.
Howard Hinnant
2013-03-25 20:03:19 +0000
f5f4684e71Debug 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.
Howard Hinnant
2013-03-25 19:29:35 +0000
ae7bf9daacMarshall 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.
Howard Hinnant
2013-03-23 19:29:45 +0000
9976b5511aThis 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.
Howard Hinnant
2013-03-23 17:27:16 +0000
06d8bf6ce2Test 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
Howard Hinnant
2013-03-22 20:05:40 +0000
9b145da078Fix buffer read overflow in money_get::do_get(). Found by UBSan
Marshall Clow
2013-03-22 02:14:40 +0000
04bd79b23aFix undefined behavior in syntax_option_type::operator~ and match_flag_type::operator./a.out Found by UBSan
Marshall Clow
2013-03-22 02:13:55 +0000
bdea27ba8fFix bug in test; found by AddressSanitizer
Marshall Clow
2013-03-20 00:01:48 +0000
b74309e3adMarshall Clow found this memory problem in strstream using -fsanitize=address on the test suite.
Howard Hinnant
2013-03-19 22:16:57 +0000
903439f735This is an optimization which produces improved launching time. There should be no functionality change. Clients should see no ABI differences.
Howard Hinnant
2013-03-19 21:34:48 +0000
c19fe86743Fix bug in test; found by AddressSanitizer
Marshall Clow
2013-03-18 23:39:36 +0000
53e2763966Removed raw references to __sun__, __FreeBSD__, __GLIBC__ and __linux__; now just check to see if they are defined.
Marshall Clow
2013-03-18 19:34:07 +0000
dab9b2eb32Removed raw references to _MSC_VER; now just check to see if it is defined.
Marshall Clow
2013-03-18 18:20:48 +0000
dece7fe670Removed raw references to __APPLE__; now just check to see if it is defined.
Marshall Clow
2013-03-18 17:45:34 +0000
a22d2addb1Removed raw references to _WIN32; now just check to see if it is defined.
Marshall Clow
2013-03-18 17:04:29 +0000
e33c2d1926This should be nothing but a load-time optimization. I'm trying to reduce load time initializers and this is a big one. No visible functionality change intended.
Howard Hinnant
2013-03-16 00:17:53 +0000
e47bc9bc4fUpdated link to Marshall's instructions
Marshall Clow
2013-03-14 19:00:34 +0000
c7cbe502dbSome forward-looking and optimistic documentation.
Howard Hinnant
2013-03-14 18:37:48 +0000
23fb972520Albert Wong: definition for regex_traits<_CharT>::__regex_word.
Howard Hinnant
2013-03-07 19:38:08 +0000
707f318787Change _LIBCPP_TYPE_VIS to use __type_visibility__(default) instead of __visibility__(default) when available. This change makes just the type_info visible so that types like vectors and strings can be used as exception objects across dylib boundaries even when hidden visibility is specified globally (at the command line), and yet this allows clients to hide the member functions of things like vector and string (with global visibility commands).
Howard Hinnant
2013-03-07 19:25:03 +0000
83eade6abbNo 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.
Howard Hinnant
2013-03-06 23:30:19 +0000