Joerg Sonnenberger
55622073f4
Exceptions store the message as reference counted string for
...
compatibility to libstdc++. Move the implementation into a header for
easier sharing with libc++abi. Merge a number of improvements from that
version. Provide a POD definition for <stdexcept>'s public use to avoid
cast dances. Discussed with Marshall Clow.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@207695 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-30 19:54:11 +00:00
Marshall Clow
5f64a2b3c3
Fix bug #18350 . Add tests for tuples of all the smart pointers (except auto_ptr)
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@207307 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-26 05:19:48 +00:00
Marshall Clow
34b571bd88
Added some tests for equal elements in min_element and max_element. Bug #19547 was invalid, but we weren't testing that case
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@207232 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-25 15:50:54 +00:00
Marshall Clow
398c9d882b
Default the copy and move constructors for __tuple_leaf. This fixes bugs 18853 and 19118. Add a test case for that.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206829 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-21 23:48:09 +00:00
Marshall Clow
067e91d29e
Use compiler intrinsic __is_constructible if available
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206805 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-21 22:30:32 +00:00
Marshall Clow
88dd258984
Add more tests for std::ws as pointed out by bug #19497
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206770 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-21 18:12:09 +00:00
Marshall Clow
a178c13419
Bug #19473 . If you pass an allocator to std::function, we should use that allocator, not construct one from scratch. Add a test to make sure
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206623 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-18 17:23:36 +00:00
Marshall Clow
f1d10875d7
Fixed a test that was attempting to use rvalue-references w/o checking to see if they were supported in the language. This resulted in a warning when testing using C++03.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206482 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-17 18:11:38 +00:00
Marshall Clow
6601516af8
Remove some unnecessary noexcept conditions. Thanks to Richard Smith for the catch.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206424 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-16 23:12:55 +00:00
Marshall Clow
7d4d519f0b
Define a new macro in libc++ named '_LIBCPP_HAS_NO_ASAN'. When this is defined,
...
libc++ will not call address_sanitizer to detect addressing errors in the
standard library containers. This is a negative macro to enable users to
disable the libc++ checks even if they are compiling with address sanitizer
enabled by defining this macro.
At the present time, there is no code in libc++ that looks at this macro.
That will come soon. This is just infrastructure.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206184 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 15:44:57 +00:00
Joerg Sonnenberger
ed5394a8f9
Not everyone uses bash, so fix test syntax.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206118 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-12 21:12:55 +00:00
Marshall Clow
140e8f52c3
Remove node from a container before destroying it. Thanks to Alexander Potapenko for pointing this out.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@206024 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-11 08:22:42 +00:00
Marshall Clow
f1264e7c9e
Fix PR19819
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205709 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-07 13:32:26 +00:00
Marshall Clow
3f357193cb
Removed 'sized deallocation' from C++14 status page since it turned out to require no library work, and fixed a typo in index.html. Thanks to Tobias for pointing these out.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205700 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-07 07:28:33 +00:00
Tim Northover
0835e16c6d
RTTI Uniqueness: remove __name_for_load function.
...
It's identical to name() these days. (At one point it avoided masking
of the RTTI uniqueness bit because ARM64 ignored it architecturally,
but no longer).
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205518 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 09:12:38 +00:00
Marshall Clow
992f9d5017
Add a section about reporting bugs and contributing patches
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205507 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 03:13:12 +00:00
Marshall Clow
874ec678c0
Reword C++14 status to match C++11 status
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205505 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 02:38:12 +00:00
Marshall Clow
e4915d9b46
Mark C++14 status as 'complete'
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205504 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 02:35:29 +00:00
Tim Northover
81339cff83
Use defined(__APPLE__) rather than __APPLE__
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205150 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-30 14:59:12 +00:00
Tim Northover
6fdde87640
ARM64: compare RTTI names as strings
...
ARM64 generates RTTI with hidden visibility, which means that typeinfo
must be compared char-by-char since it's not guaranteed to be uniqued
across the whole program.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205139 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-30 11:34:26 +00:00
Tim Northover
c030063cc2
ARM64: use the alternate string layout on Apple platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205138 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-30 11:34:22 +00:00
Stephan Tolksdorf
8a71d23633
[libc++] Teach is_integral, is_[un]signed and make_[un]signed about __[u]int128_t
...
This commit also adds tests for std::numeric_limits<__[u]int128_t>.
Reviewed in http://llvm-reviews.chandlerc.com/D2917
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204849 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-26 19:45:52 +00:00
Marshall Clow
b0767852f7
Implement LWG issue #2135 . If something goes wrong in condition_variable::wait, call terminate() rather than throwing an error. Do this indirectly, by marking the call as 'noexcept'. This is better than just calling terminate() directly, because it gives a better error message on the console.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204778 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-26 02:45:04 +00:00
Marshall Clow
f4c0c708a3
Add tests that should fail when lock() throws. THis is part of LWG issue #2135 . No library changes here.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204777 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-26 02:11:47 +00:00
Marshall Clow
ab5e0a72d5
Mark LWG issues #2075 and #2142 as complete. 2142 was a change to the standard
...
to remove redundant wording, which required no changes to libc++. 2075 was a
rewrite of the requirements for forward progress, and again, requires no changes
to the library.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204724 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 14:57:05 +00:00
Marshall Clow
bce096d34d
Add a test to make sure we're doing the right thing for throwing exceptions from deferred functions. This is LWG issue #2186 . No change to the library needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204678 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-24 22:25:24 +00:00
Marshall Clow
c0bf6f5369
Mark LWG Issue #2288 as complete. This was wording cleanup, no code changes required.
...
Also mark #2104 as complete. Leave the implementation in libc++ as noexcept, since
implementations are allowed to add noexcept to non-virtual calls. If we throw from
unique_lock& operator=(unique_lock&& u), then that means the preconditions were violated,
and calling terminate() (as a result of throwing from a noexcept function) is as
good example of undefined behavior as any other.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204653 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-24 18:38:01 +00:00
Marshall Clow
ef7b63bce1
Minor cleanup from r204078; remove two empty test directories that were left behind.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204348 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-20 15:31:42 +00:00
David Majnemer
f9f95be930
Implement N3891: A proposal to rename shared_mutex to shared_timed_mutex
...
This is as straightforward as it sounds, a renamed from shared_mutex to
shared_timed_mutex.
Note that libcxx .dylib and .so files built with c++14 support need to
be rebuilt.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204078 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-17 20:19:44 +00:00
David Majnemer
cb036e3f2c
Replace a tab with a space
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204077 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-17 20:13:54 +00:00
Marshall Clow
1a5e2cb621
Remove Issue #2235 from the Chicago section. The resolution was approved in Bristol (and it is listed there), and then is was approved *again* in Chicago. Thanks to STL @ microsoft for the catch
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203995 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-15 01:55:31 +00:00
Bob Wilson
d4245e7e91
Exclude .svn (and other "dot" directories) when installing headers.
...
My fix for PR15820 in r180132 inadvertently removed the exclusion for ".*".
This puts it back again. Thanks for Nico Weber for pointing this out!
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203807 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-13 16:13:54 +00:00
Saleem Abdulrasool
55f667ce64
build: remove unnecessary modification of CMAKE_REQUIRED_DEFINITIONS
...
This is unnecessary now that the flag handling has been fixed. The flags will
be added properly in the main CMakeLists.txt after the config-ix inclusion which
performs the required check.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203639 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 04:11:34 +00:00
Saleem Abdulrasool
eb547816ea
build: fix erroneous overwriting of flags
...
Always use list(APPEND) as it will perform the desired action even if the list
is empty or previously unset. The first set is harmless, however, the
subsequent set was overwriting the previous flag setup resulting in an improper
compilation command being generated. This manifested as a build failure on
Linux when using cmake + ninja.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203638 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 04:11:31 +00:00
Saleem Abdulrasool
89a52ffd54
build: fix add_definition abuse in CMake
...
add_definitions is meant for adding C preprocessor definitions. Modern cmake
suggests use of the CMAKE_CXX_FLAGS for the purposes of pushing flags to the
compilation commands. Simply switch to the modern form given that we are
already requiring a new enough cmake.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203637 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 04:11:28 +00:00
Saleem Abdulrasool
6875f3b6e4
build: remove an errant comma
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203636 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 04:11:25 +00:00
Marshall Clow
5a8e27b5b3
THIRD TIME. Richard pointed out (again) that I'd switched the order of the instance variables; and thus failed to repair the ABI break. After this, I'm going to sit down and watch TV for the evening.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203631 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 01:19:36 +00:00
Marshall Clow
668a1d8c44
Fix ABI break I made in r203587; thanks to Richard Smith for the catch.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203610 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 22:05:31 +00:00
Marshall Clow
be3d117702
Fix misguided #elif - it checked the value of _AIX instead of defined(_AIX). Thanks to Johan Bergström for the bug report.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203589 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 17:18:47 +00:00
Marshall Clow
b1ead689be
Implement LWG 2360: 'reverse_iterator::operator*() is unimplementable'. Note that this is a (small) behavior change in the library. Reverse iterators whose base iterators' operator* return references to 'within themselves' have been sacrificed to the greater goal of avoiding data races.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203587 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 17:16:17 +00:00
Marshall Clow
d3849253ce
Patch from Steve MacKenzie to make the libc++ tests play nicely with MSVC's STL. Add '#include <functional>' to four of the priority queue tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203584 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 16:22:53 +00:00
Marshall Clow
7db57339fb
Mark LWG #2314 . 'apply() should return decltype(auto) and use decay_t before tuple_size' as complete. This is a correction to some example code in the standard, no change needed for libc++.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203579 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 15:17:34 +00:00
Marshall Clow
3ebf26f90d
Final bit for LWG #2263 ; test different allocator pointer types. Note that libc++ already does the right thing here; I've just added tests to ensure that it stays this way.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203539 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 04:32:12 +00:00
Marshall Clow
6dbaaa99a8
Add tests for LWG issue #2356 . Stability of erasure in unordered associative containers. Libc++ already does this, but now we have tests for it.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203494 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 21:36:36 +00:00
Marshall Clow
179e9455a5
More tests for LWG Issue #2263 ; this time to the associative and unordered containers. Still no changes to libc++
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203480 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 19:18:49 +00:00
Marshall Clow
9863083ee0
Added tests to the sequence containers for for LWG Issue #2263 . Comparing iterators and allocator pointers with different const-character. No changes to libc++
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203479 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 18:54:56 +00:00
Marshall Clow
f7b63d646b
Mark issues #2357 (wording changes in the standard, no functionality change) and #2132 (libc++ already does this) as complete.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203478 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 17:59:59 +00:00
Marshall Clow
caaa1412b0
Fix bug I introduced (enabling implicit conversions from compare function to map) in r202994. Thanks to Sebastian Redl for the catch.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203443 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 04:50:10 +00:00
Marshall Clow
d14101758a
Update status for LWG 2193 and 2344.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203291 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 21:47:20 +00:00
Marshall Clow
b90686c1ec
Implement LWG #2344 : quoted()'s interaction with padding is unclear. I think that anyone using quoted with padding is really confused, but it should work the way the rest of iostreams works.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203290 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 21:45:32 +00:00