b2292091cbNow 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
d3eca759a2Fix 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
1ee87fa41aFix test cases that were trying to make atomic things that are not trivially copyable.
David Chisnall
2012-04-05 13:23:08 +00:00
0341c820a0Fix use of __atomic_is_lock_free() intrinsic.
David Chisnall
2012-04-05 13:13:24 +00:00
616e92d748Put 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
2a5349ba66constexpr support for <utility>. Patch contributed by Jonathan Sauer.
Howard Hinnant
2012-04-03 21:09:48 +00:00
271a1c03c3Updated documentation contributed by Christopher Jefferson.
Howard Hinnant
2012-04-03 15:08:42 +00:00
8efd3dac5dUpdate <random> with constexpr support. Patch contributed by Jonathan Sauer.
Howard Hinnant
2012-04-02 21:00:45 +00:00
60cb7d267fUpdate <limits> with constexpr support. Patch contributed by Jonathan Sauer.
Howard Hinnant
2012-04-02 19:23:15 +00:00
27b4fd30efThis 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
dc1345fd44I 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
9aa4e11451It 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
87c61a61feAllow 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
1378397721Alter 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
21a84cfb8fUndo some overzealous #ifdefs for LIBCXXRT.
David Chisnall
2012-03-14 14:11:13 +00:00
f2533a8798Make sure [at_]quick_exit is in std::
David Chisnall
2012-03-14 14:10:37 +00:00
b407d45d83Don't refer to a function that doesn't exist in the quick_exit test.
David Chisnall
2012-03-14 14:02:15 +00:00
558ae17391Fix moneypunct_byname algorithm to more accurately represent C locales in C++.
Jeffrey Yasskin
2012-03-10 18:31:43 +00:00
b56a4ada33Define _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
b6e7c305d4Fix MSVC / Sun #ifdef ordering. Remove another #if-nothing-#endif.
David Chisnall
2012-02-29 16:41:21 +00:00
26cba271cbRemove a spurious #ifdef / #endif pair with nothing between them.
David Chisnall
2012-02-29 16:22:33 +00:00
fcbaf48f21Add a warning to ctype<char>::classic_table() if not implemented.
Howard Hinnant
2012-02-29 16:08:57 +00:00
d0ed21e94dI'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
ea2741973aAdd support files required for building on Solaris.
David Chisnall
2012-02-29 13:17:28 +00:00
997e454139Solaris 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
f2b2cc6440Make the failure reporting in testit a bit more useful.
David Chisnall
2012-02-29 13:00:44 +00:00
8fa14e97caDon't define __locale_raii if we are not going to be using it.
David Chisnall
2012-02-29 13:00:07 +00:00
1e8b3f96c0Some libcxxrt-compatibility cleanups (avoid defining things twice).
David Chisnall
2012-02-29 12:59:17 +00:00
0438ea241evector::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
a231c37df7update test for explicit bool operator.
Howard Hinnant
2012-02-25 21:43:14 +00:00
9d84832741At 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
8417c46f8dReExport some mor symbols from libc++abi.
Howard Hinnant
2012-02-25 20:25:07 +00:00
896baa2547Silence some warnings in a test.
Howard Hinnant
2012-02-25 20:04:11 +00:00
3fadda314aModernize 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
d41b60b2b4Add missing newlines at EOF.
Bob Wilson
2012-02-20 16:56:13 +00:00
335b1518e4Silence -Wmissing-field-initializers a little higher in the source.
Howard Hinnant
2012-02-20 16:51:43 +00:00
e0c3b1e55cAdd myself to the CREDITS file.
Jeffrey Yasskin
2012-02-19 18:22:03 +00:00
3074a05cdcInitialize 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
6df1412ca6Relax pointer output test to accept glibc's output. Patch supplied by Jeffrey Yasskin.
Howard Hinnant
2012-02-19 14:51:01 +00:00
3508b3836bGive the emulated nullptr_t a default constructor.
Howard Hinnant
2012-02-18 22:01:22 +00:00
01198b313cExercise rvalue arguements to make_shared for C++11 mode.
Howard Hinnant
2012-02-18 20:12:03 +00:00
e1642e1c00Move typeinfos for exceptions in <stdexcept> to the abi
Howard Hinnant
2012-02-17 19:24:42 +00:00
2848444954tuple 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
b04ad4162dDo 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
d7a2ad6a99Another 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
e5285fd6b6Remove 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
b0bfd9bdd6Implement a few optimizations for vector push_back and insert. Fixes r10828365.
Howard Hinnant
2012-02-15 00:41:34 +00:00
5f3f35fe64Provide 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
982331b66eFix up narrowing conversions in switch statement.
Howard Hinnant
2012-02-08 19:15:06 +00:00
67872dde14Make attributes on definition consistent with those on declaration.
Howard Hinnant
2012-02-03 18:31:43 +00:00
3c8432fb5bAdded some more symbols to the v2 rexport list.
Howard Hinnant
2012-02-02 22:01:34 +00:00
dea7f39af1Prepare for running on top of new libc++abi.
Howard Hinnant
2012-02-02 20:48:35 +00:00
1dd5ccf06cFix .PHONY target to match new installheaders target.
Bob Wilson
2012-01-21 06:16:39 +00:00
a18778751cEnable 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
6e4971fafeAdded installheaders target.
Howard Hinnant
2012-01-18 17:44:31 +00:00
798e880364Remove installhdrs target from Makefile
Howard Hinnant
2012-01-18 16:07:25 +00:00
ca1f44d19fCreate target installhdrs as a synonym for do-installhdrs.
Howard Hinnant
2012-01-18 00:30:57 +00:00
b9b932fdefPut do-installhdrs target back into Makefile.
Howard Hinnant
2012-01-17 17:01:18 +00:00
fcf7bd1ffeStop installing headers, this is now done by clang
Howard Hinnant
2012-01-17 16:09:32 +00:00
571994088f1. 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
e4d24cec24Happy new year 2012!
NAKAMURA Takumi
2012-01-01 08:16:56 +00:00
8292d74270The 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
5586c020c9Fix memory leak in converting weak_ptr to shared_ptr
Howard Hinnant
2011-12-27 22:20:51 +00:00
828c2bb86dCreating a stable branch for Apple
apple
Howard Hinnant
2011-12-22 15:14:10 +00:00
83b2c84a3cSome fixes to <atomic> operations to explicitly use atomic types and operations.
David Chisnall
2011-12-19 11:44:20 +00:00
8e84350ebfAllow unique_ptr<T const []> to be constructed and assigned from a unique_ptr<T[]>
Howard Hinnant
2011-12-18 21:19:44 +00:00
0a63119a76Allow 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
8e50a9cf73Remove quotes from locale name identifier. Credit Edward Meewis.
Howard Hinnant
2011-12-15 15:01:38 +00:00
f8880d0b85As 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
c00f75dc75Installation of CityHash by Craig Silverstein
Howard Hinnant
2011-12-10 20:28:56 +00:00
40c13d31c5Starting 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
cf2654bae7Version #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
2891675aadI had picked up the wrong version of DaveZ's hash patches. Corrected here.
Howard Hinnant
2011-12-02 23:45:22 +00:00
62453ea71dFixes 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
f836d531b4unord test fixes by Edward Meewis
Howard Hinnant
2011-12-02 21:23:14 +00:00
91a8272cbdOn 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
6f2cc0043cCreating release candidate 3 from release_30 branch
Bill Wendling
2011-11-07 20:52:48 +00:00