Joerg Sonnenberger
a1fbf3459f
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.
llvm-svn: 207695
2014-04-30 19:54:11 +00:00
Marshall Clow
85d3e7a729
Fix bug #18350 . Add tests for tuples of all the smart pointers (except auto_ptr)
...
llvm-svn: 207307
2014-04-26 05:19:48 +00:00
Marshall Clow
190cc60a2d
Added some tests for equal elements in min_element and max_element. Bug #19547 was invalid, but we weren't testing that case
...
llvm-svn: 207232
2014-04-25 15:50:54 +00:00
Marshall Clow
7546a111a9
Default the copy and move constructors for __tuple_leaf. This fixes bugs 18853 and 19118. Add a test case for that.
...
llvm-svn: 206829
2014-04-21 23:48:09 +00:00
Marshall Clow
3d3974b45b
Use compiler intrinsic __is_constructible if available
...
llvm-svn: 206805
2014-04-21 22:30:32 +00:00
Marshall Clow
79a770ba45
Add more tests for std::ws as pointed out by bug #19497
...
llvm-svn: 206770
2014-04-21 18:12:09 +00:00
Marshall Clow
5f7c2db2ce
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
...
llvm-svn: 206623
2014-04-18 17:23:36 +00:00
Marshall Clow
b040647672
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.
...
llvm-svn: 206482
2014-04-17 18:11:38 +00:00
Marshall Clow
c303bba184
Remove some unnecessary noexcept conditions. Thanks to Richard Smith for the catch.
...
llvm-svn: 206424
2014-04-16 23:12:55 +00:00
Marshall Clow
91c71ddd8d
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.
llvm-svn: 206184
2014-04-14 15:44:57 +00:00
Joerg Sonnenberger
71e07d7175
Not everyone uses bash, so fix test syntax.
...
llvm-svn: 206118
2014-04-12 21:12:55 +00:00
Marshall Clow
ec959d5f46
Remove node from a container before destroying it. Thanks to Alexander Potapenko for pointing this out.
...
llvm-svn: 206024
2014-04-11 08:22:42 +00:00
Marshall Clow
886c6a645f
Fix PR19819
...
llvm-svn: 205709
2014-04-07 13:32:26 +00:00
Marshall Clow
5cf03ab4b7
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.
...
llvm-svn: 205700
2014-04-07 07:28:33 +00:00
Tim Northover
caccac10b7
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).
llvm-svn: 205518
2014-04-03 09:12:38 +00:00
Marshall Clow
17c6aa0f53
Add a section about reporting bugs and contributing patches
...
llvm-svn: 205507
2014-04-03 03:13:12 +00:00
Marshall Clow
079402d1c1
Reword C++14 status to match C++11 status
...
llvm-svn: 205505
2014-04-03 02:38:12 +00:00
Marshall Clow
ca6e366d07
Mark C++14 status as 'complete'
...
llvm-svn: 205504
2014-04-03 02:35:29 +00:00
Tim Northover
4b9a505a5e
Use defined(__APPLE__) rather than __APPLE__
...
llvm-svn: 205150
2014-03-30 14:59:12 +00:00
Tim Northover
0090e657cb
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.
llvm-svn: 205139
2014-03-30 11:34:26 +00:00
Tim Northover
c3a57e91ef
ARM64: use the alternate string layout on Apple platforms.
...
llvm-svn: 205138
2014-03-30 11:34:22 +00:00
Stephan Tolksdorf
e180ecab2c
[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
llvm-svn: 204849
2014-03-26 19:45:52 +00:00
Marshall Clow
1641a7c1cb
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.
...
llvm-svn: 204778
2014-03-26 02:45:04 +00:00
Marshall Clow
28c391f68e
Add tests that should fail when lock() throws. THis is part of LWG issue #2135 . No library changes here.
...
llvm-svn: 204777
2014-03-26 02:11:47 +00:00
Marshall Clow
b43399842f
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.
llvm-svn: 204724
2014-03-25 14:57:05 +00:00
Marshall Clow
4fdb070817
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.
...
llvm-svn: 204678
2014-03-24 22:25:24 +00:00
Marshall Clow
e2db85a968
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.
llvm-svn: 204653
2014-03-24 18:38:01 +00:00
David Majnemer
7ec93f9b1c
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.
llvm-svn: 204078
2014-03-17 20:19:44 +00:00
David Majnemer
2fd6f512e5
Replace a tab with a space
...
llvm-svn: 204077
2014-03-17 20:13:54 +00:00
Marshall Clow
98de59157c
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
...
llvm-svn: 203995
2014-03-15 01:55:31 +00:00
Bob Wilson
996e992bf2
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!
llvm-svn: 203807
2014-03-13 16:13:54 +00:00
Saleem Abdulrasool
407964238f
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.
llvm-svn: 203639
2014-03-12 04:11:34 +00:00
Saleem Abdulrasool
03e6dbbc05
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.
llvm-svn: 203638
2014-03-12 04:11:31 +00:00
Saleem Abdulrasool
496b68bd5b
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.
llvm-svn: 203637
2014-03-12 04:11:28 +00:00
Saleem Abdulrasool
b328a046e0
build: remove an errant comma
...
llvm-svn: 203636
2014-03-12 04:11:25 +00:00
Marshall Clow
b2d74f29f6
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.
...
llvm-svn: 203631
2014-03-12 01:19:36 +00:00
Marshall Clow
3b83496dd4
Fix ABI break I made in r203587; thanks to Richard Smith for the catch.
...
llvm-svn: 203610
2014-03-11 22:05:31 +00:00
Marshall Clow
201fe8cfe7
Fix misguided #elif - it checked the value of _AIX instead of defined(_AIX). Thanks to Johan Bergström for the bug report.
...
llvm-svn: 203589
2014-03-11 17:18:47 +00:00
Marshall Clow
ef3d680093
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.
...
llvm-svn: 203587
2014-03-11 17:16:17 +00:00
Marshall Clow
b708306128
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.
...
llvm-svn: 203584
2014-03-11 16:22:53 +00:00
Marshall Clow
ed94639ea1
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++.
...
llvm-svn: 203579
2014-03-11 15:17:34 +00:00
Marshall Clow
b33d838bcf
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.
...
llvm-svn: 203539
2014-03-11 04:32:12 +00:00
Marshall Clow
17af2f56ab
Add tests for LWG issue #2356 . Stability of erasure in unordered associative containers. Libc++ already does this, but now we have tests for it.
...
llvm-svn: 203494
2014-03-10 21:36:36 +00:00
Marshall Clow
988a4e8d0e
More tests for LWG Issue #2263 ; this time to the associative and unordered containers. Still no changes to libc++
...
llvm-svn: 203480
2014-03-10 19:18:49 +00:00
Marshall Clow
9f60718286
Added tests to the sequence containers for for LWG Issue #2263 . Comparing iterators and allocator pointers with different const-character. No changes to libc++
...
llvm-svn: 203479
2014-03-10 18:54:56 +00:00
Marshall Clow
81fec9b270
Mark issues #2357 (wording changes in the standard, no functionality change) and #2132 (libc++ already does this) as complete.
...
llvm-svn: 203478
2014-03-10 17:59:59 +00:00
Marshall Clow
415a24e41f
Fix bug I introduced (enabling implicit conversions from compare function to map) in r202994. Thanks to Sebastian Redl for the catch.
...
llvm-svn: 203443
2014-03-10 04:50:10 +00:00
Marshall Clow
5f16f4c087
Update status for LWG 2193 and 2344.
...
llvm-svn: 203291
2014-03-07 21:47:20 +00:00
Marshall Clow
b162b17f05
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.
...
llvm-svn: 203290
2014-03-07 21:45:32 +00:00
Marshall Clow
66b2226eb8
Fix a couple of -Wabsolute-value warnings in the libc++ tests
...
llvm-svn: 203126
2014-03-06 16:27:17 +00:00