Commit Graph

  • b2292091cb Now that clang supports doing the right thing with regard to atomic initialisation, do the right thing with regard to atomic initialisation. David Chisnall 2012-04-11 17:26:23 +00:00
  • d3eca759a2 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...). David Chisnall 2012-04-05 13:48:16 +00:00
  • 1ee87fa41a Fix test cases that were trying to make atomic things that are not trivially copyable. David Chisnall 2012-04-05 13:23:08 +00:00
  • 0341c820a0 Fix use of __atomic_is_lock_free() intrinsic. David Chisnall 2012-04-05 13:13:24 +00:00
  • 616e92d748 Put std::piecewise_construct_t back into the dylib for ABI stability. When clients are in C++11/constexpr mode this will be safely ignored because piecewise_construct is then declared with internal linkage. Howard Hinnant 2012-04-03 23:45:46 +00:00
  • 2a5349ba66 constexpr support for <utility>. Patch contributed by Jonathan Sauer. Howard Hinnant 2012-04-03 21:09:48 +00:00
  • 271a1c03c3 Updated documentation contributed by Christopher Jefferson. Howard Hinnant 2012-04-03 15:08:42 +00:00
  • 8efd3dac5d Update <random> with constexpr support. Patch contributed by Jonathan Sauer. Howard Hinnant 2012-04-02 21:00:45 +00:00
  • 60cb7d267f Update <limits> with constexpr support. Patch contributed by Jonathan Sauer. Howard Hinnant 2012-04-02 19:23:15 +00:00
  • 2cf89a71df Fix test for default constructor of discrete_distribution. This partially addresses http://llvm.org/bugs/show_bug.cgi?id=12436. Howard Hinnant 2012-04-02 15:00:14 +00:00
  • 27b4fd30ef This is an initial commit of constexpr support as proposed by Richard Smith. This by no means completes constexpr support. Indeed, it hardly scratches the surface. All it does is lay the foundation in <__config> and changes those few places in the library that are already using that foundation. Howard Hinnant 2012-04-02 00:40:41 +00:00
  • dc1345fd44 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. Howard Hinnant 2012-04-01 23:10:42 +00:00
  • 9aa4e11451 It appears that the standard accidentally removed the default constructor for error_category. I'm putting it back in. This fixes http://llvm.org/bugs/show_bug.cgi?id=12321. Howard Hinnant 2012-03-21 16:18:57 +00:00
  • 87c61a61fe 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. Howard Hinnant 2012-03-19 15:40:23 +00:00
  • 1378397721 Alter the terminal streams such that they do not get added to the atexit chain, and thus never get destructed. Howard Hinnant 2012-03-16 15:13:51 +00:00
  • 21a84cfb8f Undo some overzealous #ifdefs for LIBCXXRT. David Chisnall 2012-03-14 14:11:13 +00:00
  • f2533a8798 Make sure [at_]quick_exit is in std:: David Chisnall 2012-03-14 14:10:37 +00:00
  • b407d45d83 Don't refer to a function that doesn't exist in the quick_exit test. David Chisnall 2012-03-14 14:02:15 +00:00
  • 558ae17391 Fix moneypunct_byname algorithm to more accurately represent C locales in C++. Jeffrey Yasskin 2012-03-10 18:31:43 +00:00
  • 05b57d5cdf Change some smart_ptr == 0 to smart_ptr == nullptr. Fixes http://llvm.org/bugs/show_bug.cgi?id=12185. Howard Hinnant 2012-03-07 20:37:43 +00:00
  • b56a4ada33 Define _WCHAR_T in solaris/wchar.h. This fixes a bug where Solaris 10 headers try to define C++ keywords as typedefs (fixed in Solaris 11). David Chisnall 2012-03-02 10:56:04 +00:00
  • b6e7c305d4 Fix MSVC / Sun #ifdef ordering. Remove another #if-nothing-#endif. David Chisnall 2012-02-29 16:41:21 +00:00
  • 26cba271cb Remove a spurious #ifdef / #endif pair with nothing between them. David Chisnall 2012-02-29 16:22:33 +00:00
  • fcbaf48f21 Add a warning to ctype<char>::classic_table() if not implemented. Howard Hinnant 2012-02-29 16:08:57 +00:00
  • d0ed21e94d I'm reverting one of the changes made to exception.cpp in r151717. I'm unsure what the change was trying to do, but it didn't do the right thing for __APPLE__. So instead of trying to guess what was intended, I'm just putting it back the way it was. Howard Hinnant 2012-02-29 15:37:30 +00:00
  • ea2741973a Add support files required for building on Solaris. David Chisnall 2012-02-29 13:17:28 +00:00
  • 997e454139 Solaris port. Currently sees around 200 test failures, mostly related to Solaris not providing some of the locales that the test suite uses. David Chisnall 2012-02-29 13:05:08 +00:00
  • f2b2cc6440 Make the failure reporting in testit a bit more useful. David Chisnall 2012-02-29 13:00:44 +00:00
  • 8fa14e97ca Don't define __locale_raii if we are not going to be using it. David Chisnall 2012-02-29 13:00:07 +00:00
  • 1e8b3f96c0 Some libcxxrt-compatibility cleanups (avoid defining things twice). David Chisnall 2012-02-29 12:59:17 +00:00
  • 4a13b2dce9 Reduce the number of move constructions when constructing a std::function. This fixes http://llvm.org/bugs/show_bug.cgi?id=12105. Howard Hinnant 2012-02-28 19:47:38 +00:00
  • 0438ea241e vector::emplace_back was mistakenly requiring move assignable. Fixed that and did a little drive-by optimization at the same time. This fixes http://llvm.org/bugs/show_bug.cgi?id=12085. Howard Hinnant 2012-02-26 15:30:12 +00:00
  • a231c37df7 update test for explicit bool operator. Howard Hinnant 2012-02-25 21:43:14 +00:00
  • 9d84832741 At least temporarily move operator new/delete from the abi back to here. I'm having trouble reexporting it as a weak symbol. Howard Hinnant 2012-02-25 21:36:01 +00:00
  • 8417c46f8d ReExport some mor symbols from libc++abi. Howard Hinnant 2012-02-25 20:25:07 +00:00
  • 896baa2547 Silence some warnings in a test. Howard Hinnant 2012-02-25 20:04:11 +00:00
  • 4300839b5f 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. Howard Hinnant 2012-02-24 23:32:26 +00:00
  • b9344c218b Use Xcode relative compilers when possible Dave Zarzycki 2012-02-22 00:20:30 +00:00
  • 7786188d15 Modernize conversion to bool to the explicit bool conversion operator (library wide). This fixes http://llvm.org/bugs/show_bug.cgi?id=12058. Howard Hinnant 2012-02-21 21:46:43 +00:00
  • 3fadda314a 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. Howard Hinnant 2012-02-21 21:02:58 +00:00
  • d41b60b2b4 Add missing newlines at EOF. Bob Wilson 2012-02-20 16:56:13 +00:00
  • 335b1518e4 Silence -Wmissing-field-initializers a little higher in the source. Howard Hinnant 2012-02-20 16:51:43 +00:00
  • e0c3b1e55c Add myself to the CREDITS file. Jeffrey Yasskin 2012-02-19 18:22:03 +00:00
  • 3074a05cdc Initialize all the fields of struct tm before passing it to strftime. One of the uninitialized fields, probably the pointer field tm_zone, was causing a segfault on linux. Patch contributed by Jeffrey Yasskin. Howard Hinnant 2012-02-19 14:55:32 +00:00
  • 6df1412ca6 Relax pointer output test to accept glibc's output. Patch supplied by Jeffrey Yasskin. Howard Hinnant 2012-02-19 14:51:01 +00:00
  • 3508b3836b Give the emulated nullptr_t a default constructor. Howard Hinnant 2012-02-18 22:01:22 +00:00
  • 01198b313c Exercise rvalue arguements to make_shared for C++11 mode. Howard Hinnant 2012-02-18 20:12:03 +00:00
  • e1642e1c00 Move typeinfos for exceptions in <stdexcept> to the abi Howard Hinnant 2012-02-17 19:24:42 +00:00
  • 1e9f55f2d2 Use __is_polymorphic if available. This fixes http://llvm.org/bugs/show_bug.cgi?id=11983 . Patch contributed by Jonathan Sauer. Howard Hinnant 2012-02-15 20:47:11 +00:00
  • 2848444954 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 Howard Hinnant 2012-02-15 20:13:52 +00:00
  • b04ad4162d 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 Howard Hinnant 2012-02-15 19:19:37 +00:00
  • d7a2ad6a99 Another stab at fixing http://llvm.org/bugs/show_bug.cgi?id=12007. I earlier missed that there are two common_type definitions and corrected only one of them. Howard Hinnant 2012-02-15 18:08:09 +00:00
  • e5285fd6b6 Remove reference from common_type definition. It looks like a recent clang decltype implementation got fixed/improved and exposed this. Fixes http://llvm.org/bugs/show_bug.cgi?id=12007. Howard Hinnant 2012-02-15 15:08:30 +00:00
  • b0bfd9bdd6 Implement a few optimizations for vector push_back and insert. Fixes r10828365. Howard Hinnant 2012-02-15 00:41:34 +00:00
  • 5f3f35fe64 Provide a move(const T&) overload for C++03 mode to enable moving from rvalues. This is to support proxy references. Fixes r10858112. Howard Hinnant 2012-02-14 16:03:09 +00:00
  • 982331b66e Fix up narrowing conversions in switch statement. Howard Hinnant 2012-02-08 19:15:06 +00:00
  • 67872dde14 Make attributes on definition consistent with those on declaration. Howard Hinnant 2012-02-03 18:31:43 +00:00
  • 3c8432fb5b Added some more symbols to the v2 rexport list. Howard Hinnant 2012-02-02 22:01:34 +00:00
  • dea7f39af1 Prepare for running on top of new libc++abi. Howard Hinnant 2012-02-02 20:48:35 +00:00
  • b1bc0c4975 Explicitly convert int to future_errc. Fixes http://llvm.org/bugs/show_bug.cgi?id=11428 Howard Hinnant 2012-02-02 20:31:36 +00:00
  • 1dd5ccf06c Fix .PHONY target to match new installheaders target. Bob Wilson 2012-01-21 06:16:39 +00:00
  • a18778751c Enable full functionality of shared_ptr<const void> by adding allocator<const void>. Credit to John Hurley for discovering this bug. Howard Hinnant 2012-01-19 23:15:22 +00:00
  • 6e4971fafe Added installheaders target. Howard Hinnant 2012-01-18 17:44:31 +00:00
  • 798e880364 Remove installhdrs target from Makefile Howard Hinnant 2012-01-18 16:07:25 +00:00
  • ca1f44d19f Create target installhdrs as a synonym for do-installhdrs. Howard Hinnant 2012-01-18 00:30:57 +00:00
  • b9b932fdef Put do-installhdrs target back into Makefile. Howard Hinnant 2012-01-17 17:01:18 +00:00
  • fcf7bd1ffe Stop installing headers, this is now done by clang Howard Hinnant 2012-01-17 16:09:32 +00:00
  • e1a7b04c58 Fix http://llvm.org/bugs/show_bug.cgi?id=11752 Howard Hinnant 2012-01-12 23:37:51 +00:00
  • ae8b16e047 Fix http://llvm.org/bugs/show_bug.cgi?id=11734 Howard Hinnant 2012-01-10 15:15:47 +00:00
  • 571994088f 1. Fix make_shared<const T>. 2. Allow allocator<const T> as an extension. 3. Refactor work which fixed unique_ptr<const T[]>. 4. Remove no-longer-needed private declarations from unique_ptr. 5. Add constraints to some shared_ptr and weak_ptr constructors and assignment operators so that is_constructible/is_assignable give the correct answers for shared_ptr and weak_ptr. 6. Make defensive preparations in the shared_ptr free functions for the introduction of shared_ptr<T[]> in the future. 7. As an optimization, add move constructor and move assignment to weak_ptr. Howard Hinnant 2012-01-02 17:56:02 +00:00
  • e4d24cec24 Happy new year 2012! NAKAMURA Takumi 2012-01-01 08:16:56 +00:00
  • 8292d74270 The exception recovery mechanism for the uninitialized_* algorithms did not work for iterators into discontiguous memory. Howard Hinnant 2011-12-29 17:45:35 +00:00
  • 5586c020c9 Fix memory leak in converting weak_ptr to shared_ptr Howard Hinnant 2011-12-27 22:20:51 +00:00
  • 828c2bb86d Creating a stable branch for Apple apple Howard Hinnant 2011-12-22 15:14:10 +00:00
  • 6cc99fa338 Fix http://llvm.org/bugs/show_bug.cgi?id=11616 Howard Hinnant 2011-12-19 17:58:44 +00:00
  • 83b2c84a3c Some fixes to <atomic> operations to explicitly use atomic types and operations. David Chisnall 2011-12-19 11:44:20 +00:00
  • 8e84350ebf Allow unique_ptr<T const []> to be constructed and assigned from a unique_ptr<T[]> Howard Hinnant 2011-12-18 21:19:44 +00:00
  • 0a63119a76 Allow unique_ptr<T const []> to be constructed with a T* (in addition to a const T*) Howard Hinnant 2011-12-16 15:37:23 +00:00
  • 8e50a9cf73 Remove quotes from locale name identifier. Credit Edward Meewis. Howard Hinnant 2011-12-15 15:01:38 +00:00
  • f8880d0b85 As an extension, support incomplete types in the unordered containers to match what we already do in the associative containers. Howard Hinnant 2011-12-12 17:26:24 +00:00
  • d4cf215e08 Fix http://llvm.org/bugs/show_bug.cgi?id=11461. Credit Alberto Ganesh Barbati. Howard Hinnant 2011-12-11 20:31:33 +00:00
  • c00f75dc75 Installation of CityHash by Craig Silverstein Howard Hinnant 2011-12-10 20:28:56 +00:00
  • 40c13d31c5 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. Howard Hinnant 2011-12-05 00:08:45 +00:00
  • cf2654bae7 Version #next on the hash functions for scalars. This builds on Dave's work, extends it to T*, and changes the way double and long double are handled (no longer convert to float on 32 bit). I also picked up a minor bug with uninitialized bits on the upper end of size_t when sizeof(size_t) > sizeof(T), e.g. in hash<float>. Most of the functionality has been put in one place: __scalar_hash in <memory>. Unfortunately I could not reuse __scalar_hash for hash<long double> on x86 because of the padding bits which need to be zeroed. I didn't want to add this zeroing step to the more general __scalar_hash when it isn't needed (in the absence of padding bits). I'm not ignoring the hash<string> issue (possibly changing that to a better hash). I just haven't gotten there yet. Howard Hinnant 2011-12-03 21:11:36 +00:00
  • 2891675aad I had picked up the wrong version of DaveZ's hash patches. Corrected here. Howard Hinnant 2011-12-02 23:45:22 +00:00
  • 62453ea71d Fixes to hash for long long, unsigned long long, float, double and long double. Credit Dave Zarzycki Howard Hinnant 2011-12-02 22:52:09 +00:00
  • f836d531b4 unord test fixes by Edward Meewis Howard Hinnant 2011-12-02 21:23:14 +00:00
  • e814a90f74 Fix http://llvm.org/bugs/show_bug.cgi?id=11459. Patch supplied by Alberto Ganesh Barbati. Howard Hinnant 2011-12-02 20:41:47 +00:00
  • f6d875f7f5 Fix http://llvm.org/bugs/show_bug.cgi?id=11428. Fix provided by Alberto Ganesh Barbati Howard Hinnant 2011-12-02 19:36:40 +00:00
  • 438377c051 Jean-Daniel: __builtin_popcountll support for Windows Howard Hinnant 2011-12-02 17:22:38 +00:00
  • ec3773c2da Quash a whole bunch of warnings Howard Hinnant 2011-12-01 20:21:04 +00:00
  • 9996844df0 Further macro protection by replacing _[A-Z] with _[A-Z]p Howard Hinnant 2011-11-29 18:15:50 +00:00
  • 66c6f9733b Add protection from min/max macros Howard Hinnant 2011-11-29 16:45:27 +00:00
  • 39a3659864 Creating release candidate final from release_30 branch svn-tags/RELEASE_30 Bill Wendling 2011-11-29 01:21:14 +00:00
  • 34869adacb Remove redundant iterator assignment detected by Marshall Clow Howard Hinnant 2011-11-28 19:49:26 +00:00
  • 0dd0b4d758 Refactor libcxx makefile. No functional changes intended. Bob Wilson 2011-11-27 05:39:58 +00:00
  • 704f09b212 Clarify building instructions for 10.7 Howard Hinnant 2011-11-17 17:14:16 +00:00
  • 5ac68da4cb Creating release candidate 4 from release_30 branch Tanya Lattner 2011-11-17 07:30:07 +00:00
  • 91a8272cbd On FreeBSD, define a macro that causes the unimplemented C99 math.h functions to be declared. This prevents <cmath> users from being broken, unless they actually use the C++ wrappers that call the missing functions. David Chisnall 2011-11-13 17:15:33 +00:00
  • 6f2cc0043c Creating release candidate 3 from release_30 branch Bill Wendling 2011-11-07 20:52:48 +00:00