Marshall Clow
7aa54577d1
literal suffixes for std::chrono
...
llvm-svn: 187078
2013-07-24 21:18:14 +00:00
Howard Hinnant
b24c802489
Debug 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.
You can try this out with -D_LIBCPP_DEBUG2. You will have to link to a
libc++.dylib that has been compiled with src/debug.cpp. So far, vector
(but not vector<bool>), list, and unordered_set are treated. I hope to
get the other three unordered containers up fairly quickly now that
unordered_set is done.
The flag _LIBCPP_DEBUG2 will eventually be changed to _LIBCPP_DEBUG, but
not today. This is my second effort at getting debug mode going for
libc++, and I'm not quite yet ready to throw all of the work under the
first attempt away.
The basic design is that all of the debug information is kept in a
central database, instead of in the containers. This has been done as
an attempt to have debug mode and non-debug mode be ABI compatible with
each other. There are some circumstances where if you construct a
container in an environment without debug mode and pass it into debug
mode, the checking will get confused and let you know with a readable
error message. Passing containers the other way: from debug mode out to
a non-debugging mode container should be 100% safe (at least that is the
goal).
llvm-svn: 186991
2013-07-23 22:01:58 +00:00
Marshall Clow
ca0be23b39
Implement string suffixes from N3642
...
llvm-svn: 186956
2013-07-23 17:05:24 +00:00
Howard Hinnant
7491a16031
Bill Fisher: This patch fixes a bug where std::regex in ECMAScript mode was ignoring capture groups inside lookahead assertions.
...
For example, matching /(?=(a))(a)/ to "a" should yield two captures: \1 = "a", \2 = "a"
llvm-svn: 186954
2013-07-23 16:18:04 +00:00
Howard Hinnant
1468d0cec7
Add some friendly messages to libcxx calls to abort().
...
llvm-svn: 186951
2013-07-23 16:05:56 +00:00
Richard Smith
79c06417d1
Add some missing cv-qualifiers.
...
llvm-svn: 186909
2013-07-23 01:24:30 +00:00
Anders Carlsson
8bb1dbbf75
Fix a bug in std::fill_n where memset would end up being called in cases when it shouldn’t.
...
Reviewed by Howard.
llvm-svn: 186875
2013-07-22 21:08:00 +00:00
Marshall Clow
75eff74803
Make tuple's constructor and std::get<>(tuple) constexpr. Final stage of fixing bug #16599 . Thanks to Howard for the review and updates.
...
llvm-svn: 186834
2013-07-22 16:02:19 +00:00
Marshall Clow
8bf1f08a2c
Make std::get constexpr
...
llvm-svn: 186525
2013-07-17 18:25:36 +00:00
Howard Hinnant
fee09c68a0
Add pointer format test for Windows.
...
llvm-svn: 186472
2013-07-16 23:50:06 +00:00
Marshall Clow
18191ceb54
Bug 16599 part 2: Make std::pair's constructors and comparison operators (and make_pair) constexpr.
...
llvm-svn: 186430
2013-07-16 17:45:44 +00:00
Marshall Clow
1c682f0f0c
Make std::forward and std::move (and std::move_if_noexcept) constexpr in C++14
...
llvm-svn: 186344
2013-07-15 20:46:11 +00:00
Howard Hinnant
22161401df
Bill 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".
...
I've added the test cases to bad_escape.pass.cpp.
llvm-svn: 186335
2013-07-15 18:21:11 +00:00
Howard Hinnant
10f8387b94
A few fixes to tests for Windows port.
...
llvm-svn: 186334
2013-07-15 18:09:11 +00:00
Marshall Clow
f20d2672e2
Add macro _LIBCPP_CONSTEXPR_AFTER_CXX11 for functions that have been marked constexpr post C++11
...
llvm-svn: 186323
2013-07-15 14:57:19 +00:00
Marshall Clow
e99520c72e
Implement n3584 - Addressing Tuples by Type
...
llvm-svn: 186237
2013-07-13 02:54:05 +00:00
Howard Hinnant
6d8a38c537
Port make_[un]signed tests to platforms where sizeof(wchar_t) == 2.
...
llvm-svn: 186136
2013-07-11 23:51:05 +00:00
Howard Hinnant
c815a4e297
Bill 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 )
...
The attached test program also supplies a test for the case 1 fix in r185273.
llvm-svn: 186089
2013-07-11 15:32:55 +00:00
Marshall Clow
48c9fe29b2
Improved tests (and fixed a bug in the tests); thanks to Richard Smith for the suggestion
...
llvm-svn: 186022
2013-07-10 18:01:34 +00:00
Marshall Clow
8e1cb5adb3
move __save_flags from <random> to <ios> in preparation for reuse; no functionality change
...
llvm-svn: 185968
2013-07-09 20:34:14 +00:00
Howard Hinnant
dbdeb153d8
Bill 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.
...
My patch uses to communicate when is false.
llvm-svn: 185950
2013-07-09 17:29:09 +00:00
Howard Hinnant
e0fe3d2e96
War on tabs.
...
llvm-svn: 185865
2013-07-08 21:06:38 +00:00
Marshall Clow
a7b0e5ddf8
Implement n3668 - std::exchange
...
llvm-svn: 185863
2013-07-08 20:54:40 +00:00
Marshall Clow
f331327c6a
Implement n3545 for c++14
...
llvm-svn: 185856
2013-07-08 20:05:31 +00:00
Howard Hinnant
271426e6ab
Windows port for __codecvt_utf8<wchar_t>.
...
llvm-svn: 185849
2013-07-08 19:03:07 +00:00
Howard Hinnant
5e00063b86
Silence -Wint-to-void-pointer-cast warning in test.
...
llvm-svn: 185756
2013-07-06 14:41:36 +00:00
Howard Hinnant
abb160e689
Remove implicit conversion from __value_type to value_type in [unordered_][multi]map. This fixes http://llvm.org/bugs/show_bug.cgi?id=16549
...
llvm-svn: 185711
2013-07-05 18:06:00 +00:00
Howard Hinnant
4a95f9eb7e
Removed 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
...
llvm-svn: 185666
2013-07-04 20:59:16 +00:00
Howard Hinnant
bbdf669bde
Simplify comparators of [unordered_][multi]map. This fixes http://llvm.org/bugs/show_bug.cgi?id=16538
...
llvm-svn: 185665
2013-07-04 19:46:35 +00:00
Joerg Sonnenberger
0644627bef
Fix bashism.
...
llvm-svn: 185646
2013-07-04 15:11:10 +00:00
Marshall Clow
5b2ef2b1a6
Patch for N3655 (Transformation type traits) with Howard's additions
...
llvm-svn: 185597
2013-07-04 00:10:01 +00:00
Marshall Clow
60df5996a4
Commit patch for integer sequences. Suggested by Richard, reworked by Howard, and annotated by me
...
llvm-svn: 185569
2013-07-03 19:20:30 +00:00
Howard Hinnant
84b569d5cf
Matthew 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.
llvm-svn: 185558
2013-07-03 17:39:28 +00:00
Marshall Clow
95ddb53049
Adorn make_unique with visibility and inline attributes
...
llvm-svn: 185468
2013-07-02 20:06:09 +00:00
Joerg Sonnenberger
392a178c33
Don't free the C locale on NetBSD.
...
llvm-svn: 185467
2013-07-02 19:46:18 +00:00
Howard Hinnant
904e587fa9
Updated CREDITS.TXT
...
llvm-svn: 185462
2013-07-02 19:00:29 +00:00
Howard Hinnant
9cfcdcb9e2
Matthew 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.
This avoids OpenBSD's linker warnings against using sprintf and
vsprintf.
Howard: Please consider a patch for CREDITS.TXT
llvm-svn: 185457
2013-07-02 18:42:28 +00:00
Howard Hinnant
3fc9ef22b3
Constrain launch ~ operator to defined bits.
...
llvm-svn: 185452
2013-07-02 18:01:41 +00:00
Howard Hinnant
ca69356d52
Windows support in thread::hardware_concurrency.
...
llvm-svn: 185451
2013-07-02 17:53:48 +00:00
Howard Hinnant
43bbdd29de
Bill 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).
...
That is, regex{"\141", awk} results in the regular expression /a1/ instead of just /a/.
llvm-svn: 185449
2013-07-02 17:43:31 +00:00
Howard Hinnant
4a142ec6b0
XFAIL this test on 10.7 and 10.8
...
llvm-svn: 185391
2013-07-01 22:59:14 +00:00
Marshall Clow
28d8ba5f79
Implement n3656 - make_unique. Thanks to Howard for the review and suggestions.
...
llvm-svn: 185352
2013-07-01 18:16:03 +00:00
Marshall Clow
d51891063f
Implement n3658 - Compile-time integer sequences
...
llvm-svn: 185343
2013-07-01 16:26:55 +00:00
Howard Hinnant
eecacc0fad
In 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
...
llvm-svn: 185298
2013-07-01 00:37:50 +00:00
Howard Hinnant
9dbbf8dece
The 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
...
llvm-svn: 185297
2013-07-01 00:01:51 +00:00
Howard Hinnant
9bf42533b7
Fix 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
...
llvm-svn: 185289
2013-06-30 19:48:15 +00:00
Howard Hinnant
8bd1771abe
Matthew 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.
However, since sysconf() has been in POSIX since 1995, it's probably
safe to assume it's available on any system with a C++11 compiler,
especially if _SC_NPROCESSORS_ONLN is defined too. So no point in a
complicated preprocessor rule if just we unconditionally include
<unistd.h> (on non-Windows systems).
Also, I've added a #warning for to help porters detect when a suitable
implementation isn't detected at compile-time.
Howard: Matthew, can you patch CREDITS.TXT? Thanks.
llvm-svn: 185275
2013-06-30 00:14:43 +00:00
Howard Hinnant
27841fd803
Matthew Dempsky: Same as stdexcept.cpp in libc++abi: we've already computed 'len strlen(msg)', so we can use memcpy() instead of strcpy().
...
llvm-svn: 185274
2013-06-29 23:53:20 +00:00
Howard Hinnant
660f2ae422
Prevent '\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.
...
llvm-svn: 185273
2013-06-29 23:45:43 +00:00
Howard Hinnant
1836462545
Add 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
...
llvm-svn: 185265
2013-06-29 18:38:17 +00:00