56dcf0b809Taking another swing at correctly optimizing fill_n.
Howard Hinnant
2013-08-01 17:29:28 +00:00
eb34122153Constrain fill_n -> memset operations to include implicit convertibility to unsigned char. This fixes http://llvm.org/bugs/show_bug.cgi?id=16764. Also a drive-by fix on a chrono test suite bug.
Howard Hinnant
2013-08-01 00:41:55 +00:00
a61e6f8705Implement constexpr (n3302) and fix operator *= and /=
Marshall Clow
2013-07-31 21:02:34 +00:00
f890d9bfaaDebug mode for unordered_multimap. Some mods were done for unordered_map as well to keep all the tests passing. However unordered_map is at the very least still missing tests, if not functionality (if it isn't tested, it probably isn't working).
Howard Hinnant
2013-07-30 21:04:42 +00:00
0bb0a7c9eaDebug mode for unordered_multiset. The exercise spotted a few places I had missed on unordered_set, so I picked those up as well.
Howard Hinnant
2013-07-29 19:05:47 +00:00
b87922c2c5Glen: Minor tweaks to locale.cpp to help it compile with exceptions turned off.
Howard Hinnant
2013-07-28 18:20:00 +00:00
f182038521literal suffixes for std::chrono
Marshall Clow
2013-07-24 21:18:14 +00:00
39213641f4Debug mode for unordered_set. I believe this to be fairly complete for unordered_set, however it is not complete yet for unordered_multiset, unordered_map or unordered_multimap. There has been a lot of work done for these other three containers, however that work was done just to keep all of the tests passing.
Howard Hinnant
2013-07-23 22:01:58 +00:00
152343260fImplement string suffixes from N3642
Marshall Clow
2013-07-23 17:05:24 +00:00
cd59accbf5Bill Fisher: This patch fixes a bug where std::regex in ECMAScript mode was ignoring capture groups inside lookahead assertions.
Howard Hinnant
2013-07-23 16:18:04 +00:00
ed14a76bebAdd some friendly messages to libcxx calls to abort().
Howard Hinnant
2013-07-23 16:05:56 +00:00
01fbfc2fa6Add some missing cv-qualifiers.
Richard Smith
2013-07-23 01:24:30 +00:00
b8e0d9086eFix a bug in std::fill_n where memset would end up being called in cases when it shouldn’t.
Anders Carlsson
2013-07-22 21:08:00 +00:00
da0a0e8a1bMake tuple's constructor and std::get<>(tuple) constexpr. Final stage of fixing bug #16599. Thanks to Howard for the review and updates.
Marshall Clow
2013-07-22 16:02:19 +00:00
f7777e8554Add pointer format test for Windows.
Howard Hinnant
2013-07-16 23:50:06 +00:00
206f6cdc33Bug 16599 part 2: Make std::pair's constructors and comparison operators (and make_pair) constexpr.
Marshall Clow
2013-07-16 17:45:44 +00:00
01a0e90783Make std::forward and std::move (and std::move_if_noexcept) constexpr in C++14
Marshall Clow
2013-07-15 20:46:11 +00:00
1e1d05121dBill Fisher: This patch fixes an ill-formed comparison when parsing control escapes, e.g. "\cA\ca". The code will now throw an error_escape exception for invalid control sequences like "\c:" or "\c".
Howard Hinnant
2013-07-15 18:21:11 +00:00
1f96a4df58A few fixes to tests for Windows port.
Howard Hinnant
2013-07-15 18:09:11 +00:00
ac93d0ebf2Add macro _LIBCPP_CONSTEXPR_AFTER_CXX11 for functions that have been marked constexpr post C++11
Marshall Clow
2013-07-15 14:57:19 +00:00
e8029e54f1Implement n3584 - Addressing Tuples by Type
Marshall Clow
2013-07-13 02:54:05 +00:00
ef7a7b730cPort make_[un]signed tests to platforms where sizeof(wchar_t) == 2.
Howard Hinnant
2013-07-11 23:51:05 +00:00
e840208989Bill Fisher: This patch fixes a less likely case where '\b' can back up into invalid memory, when driven by a regex_iterator (for case 1, see r185273 or http://llvm.org/bugs/show_bug.cgi?id=16240)
Howard Hinnant
2013-07-11 15:32:55 +00:00
37c17ed07dImproved tests (and fixed a bug in the tests); thanks to Richard Smith for the suggestion
Marshall Clow
2013-07-10 18:01:34 +00:00
809e93f7f2move __save_flags from <random> to <ios> in preparation for reuse; no functionality change
Marshall Clow
2013-07-09 20:34:14 +00:00
7670f7d1edBill Fisher: This patch fixes a bug where regex_iterator doesn't indicate when it's restarting in the middle of a string. This bug causes /^a/ to match in the middle of the string "aaaaaaa", during iteration.
Howard Hinnant
2013-07-09 17:29:09 +00:00
171771a9f5War on tabs.
Howard Hinnant
2013-07-08 21:06:38 +00:00
b66e1c3f96Removed extension in [unordered_][multi]map which allowed one to emplace using just an argument for the key, as opposed to using piecewise_construct. However a bug report exposed that this created an unfortunate ambiguity. People who are currently using the extension will be notified the next time they compile, and will have to change to using piecewise_construct. There are no ABI issues with the removal of this extension. This fixes http://llvm.org/bugs/show_bug.cgi?id=16542
Howard Hinnant
2013-07-04 20:59:16 +00:00
933afa9761Patch for N3655 (Transformation type traits) with Howard's additions
Marshall Clow
2013-07-04 00:10:01 +00:00
42e55e932eCommit patch for integer sequences. Suggested by Richard, reworked by Howard, and annotated by me
Marshall Clow
2013-07-03 19:20:30 +00:00
24ae8f8e5bMatthew Dempsky: Attached patch replaces the type punning with memcpy(), which on x86/x86-64 clang optimizes to direct word accesses anyway. This fixes an unaligned word access in murmurhash/cityhash.
Howard Hinnant
2013-07-03 17:39:28 +00:00
fb5511027bAdorn make_unique with visibility and inline attributes
Marshall Clow
2013-07-02 20:06:09 +00:00
9a06b9d017Don't free the C locale on NetBSD.
Joerg Sonnenberger
2013-07-02 19:46:18 +00:00
4573565de0Updated CREDITS.TXT
Howard Hinnant
2013-07-02 19:00:29 +00:00
839ae58c2eMatthew Dempsky: In libc++'s <locale>, there's already dependence on an snprintf_l implementation and all of the char buffers readily have their allocated size available, so we can easily use snprintf_l instead of sprintf_l.
Howard Hinnant
2013-07-02 18:42:28 +00:00
6a683bfb5fConstrain launch ~ operator to defined bits.
Howard Hinnant
2013-07-02 18:01:41 +00:00
725ae713f2Windows support in thread::hardware_concurrency.
Howard Hinnant
2013-07-02 17:53:48 +00:00
dbc8cf059eBill Fisher: This patch fixes a bug where the regex parser doesn't advance the pointer after reading the third character of an octal escape (in awk mode).
Howard Hinnant
2013-07-02 17:43:31 +00:00
eaffd0a8ffXFAIL this test on 10.7 and 10.8
Howard Hinnant
2013-07-01 22:59:14 +00:00
fd7481e96dImplement n3656 - make_unique. Thanks to Howard for the review and suggestions.
Marshall Clow
2013-07-01 18:16:03 +00:00
11b87182b0In istream::ignore, check the delimeter as an int_type, not as a char_type, so as to correctly handle EOF. This fixes http://llvm.org/bugs/show_bug.cgi?id=16427
Howard Hinnant
2013-07-01 00:37:50 +00:00
099dec1ba0The bind and function functor constructors and assignment operators were overly general and getting confused with the copy constructor and copy assignment operators. Constrained them. This fixes http://llvm.org/bugs/show_bug.cgi?id=16385
Howard Hinnant
2013-07-01 00:01:51 +00:00
c05e98660fFix bind by making _is_valid_bind_return more robust. It should return false instead of give a compile time error, always. The problem was down in ____mu_return, the version that handles nested bind objects. This fixes http://llvm.org/bugs/show_bug.cgi?id=16343
Howard Hinnant
2013-06-30 19:48:15 +00:00
312926eed4Matthew Dempsky: POSIX defines that the _POSIX_C_SOURCE macros are to be set by user code to specify what version of POSIX the system should provide. If you want to check what version of POSIX is actually available, you're supposed to test _POSIX_VERSION.
Howard Hinnant
2013-06-30 00:14:43 +00:00
09ca5d49e1Matthew Dempsky: Same as stdexcept.cpp in libc++abi: we've already computed 'len strlen(msg)', so we can use memcpy() instead of strcpy().
Howard Hinnant
2013-06-29 23:53:20 +00:00
a9602d56dePrevent '\b' from backing up into invalid memory. Fixes http://llvm.org/bugs/show_bug.cgi?id=16240. Sorry, I can not think of a good test case for this one, except by running valgrind as reported in the bug.
Howard Hinnant
2013-06-29 23:45:43 +00:00
f491e51ebdAdd operators to make launch a bitmask type. Searched all of the standard, and libc++ to see if this error occurred elsewhere and didn't see any other place. This fixes http://llvm.org/bugs/show_bug.cgi?id=16207
Howard Hinnant
2013-06-29 18:38:17 +00:00
e57b7c445bWilliam Fisher: A bug in __lookahead::exec causes /(?=^)b/ to match ab. When makes a recursive call to , it passes true for the value of . This causes a beginning-of-line anchor (^) inside a lookahead assertion to match anywhere in the text. This fixes http://llvm.org/bugs/show_bug.cgi?id=11118
Howard Hinnant
2013-06-28 19:11:23 +00:00
b9d9fb4a17Dimitry Andric: Add const to constexpr member functions in order to cope with new C++1y language rules. This silences -Wconstexpr-not-const warnings.
Howard Hinnant
2013-06-28 18:09:35 +00:00
9dcdcdee25Implement full support for non-pointer pointers in custom allocators for string. This completes the custom pointer support for the entire library.
Howard Hinnant
2013-06-28 16:59:19 +00:00
2c39cbe020Implement full support for non-pointer pointers in custom allocators for vector.
Howard Hinnant
2013-06-27 19:35:32 +00:00
29f7432ff3Implement full support for non-pointer pointers in custom allocators for list.
Howard Hinnant
2013-06-25 16:08:47 +00:00
81381a932fImplement full support for non-pointer pointers in custom allocators for forward_list.
Howard Hinnant
2013-06-24 17:17:28 +00:00
c7a39cf584Fix typo in assertion message. Reported by Shriramana Sharma.
Dmitri Gribenko
2013-06-24 06:15:57 +00:00
fcd8db7133Implement full support for non-pointer pointers in custom allocators for deque.
Howard Hinnant
2013-06-23 21:17:24 +00:00
7a6b7cedcbImplement full support for non-pointer types in custom allocators. This is for the unordered containers only. This work still needs to be done on the sequence containers.
Howard Hinnant
2013-06-22 15:21:29 +00:00
70342b99e2Implement full support for non-pointer types in custom allocators. This is for the associative containers only. This work still needs to be done on the unordered and sequence containers. Fixes http://llvm.org/bugs/show_bug.cgi?id=15978
Howard Hinnant
2013-06-19 21:29:40 +00:00
ee749a403cTest case for r183481.
Howard Hinnant
2013-06-07 14:24:18 +00:00
9360e9f944Minor bug fix for allowing an extension of const-qualified types in containers.
Howard Hinnant
2013-06-07 01:56:37 +00:00
ddb4e4cbb1Neglected to remove a debugging comment from last commit.
Howard Hinnant
2013-05-21 21:19:35 +00:00
8f72d5ce16Fix a couple of bugs in linear_congruential_engine::seed. Regression test added.
Howard Hinnant
2013-05-21 21:05:12 +00:00
67444034edCreate a weak pthread_create reference on NetBSD to not force a dependency on libpthread for code that doesn't use threads itself.
Joerg Sonnenberger
2013-05-17 21:16:18 +00:00
9e98b34a8cGlen: This patch gets the string conversion functions working on Windows. It also refactors repetitive code in string.cpp do greatly reduce the repetitiveness, increasing maintainability.
Howard Hinnant
2013-05-16 17:13:40 +00:00
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 +00:00
e27e907403Fixing the MSan/compiler-rt build
David Blaikie
2013-05-13 21:53:44 +00:00
b3585e8226İsmail Dönmez: Enable quick_exit on linux.
Howard Hinnant
2013-05-10 17:36:59 +00:00
bb3a0acf93XFAIL this test when using the darwin12 system library. Reviewed by Howard
David Dean
2013-05-10 17:25:57 +00:00
9f8f524541Fix incorrect type usage; nice catch by Sebastian
Marshall Clow
2013-05-10 00:16:10 +00:00
be764c946cDon't try to free the C locale.
Joerg Sonnenberger
2013-05-09 23:06:35 +00:00
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 +00:00
dd854b2c4eMark some tests with XFAIL for Lion and Mountain Lion.
Howard Hinnant
2013-05-07 17:37:19 +00:00
db2b81bf90Creating the libcxx release 3.3 branch.
release_33
Bill Wendling
2013-05-07 00:25:14 +00:00
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 +00:00
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 +00:00
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 +00:00
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 +00:00
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 +00:00
867deb8e06Add entry for myself.
Joerg Sonnenberger
2013-04-29 19:55:32 +00:00