Commit Graph

1407 Commits

Author SHA1 Message Date
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
Peter Collingbourne 8845dbd798 Do not derive __gnu_cxx::hash<T> from std::hash<T>.
Instead, define explicit specializations for the basic types listed in
the SGI documentation. This solves two problems:

 1) Helps avoid silent ODR violations caused by the absence of a
    user-supplied __gnu_cxx::hash specialization in cases where a std::hash
    specialization exists (e.g. for std::string).

 2) __gnu_cxx::hash semantics are slightly different to those of
    std::hash (for example, the former may dereference a pointer argument)
    so it is inappropriate for __gnu_cxx::hash to receive std::hash
    specializations by default.

Differential Revision: http://llvm-reviews.chandlerc.com/D2747

llvm-svn: 203070
2014-03-06 04:11:10 +00:00
Marshall Clow 78a87e8a68 Implement LWG 2193. Default constructors for standard library containers are explicit. Note that libc++ already did this for string/deque/forward_list/list/vector and the unordered containers; implement it for set/multiset/map/multimap. Add tests for all the containers. Two drive-by fixes as well: add a missing explicit in <deque>, and remove a tab that snuck into a container test. This issue is also LLVM bug 15724, and resolves it.
llvm-svn: 202994
2014-03-05 19:06:20 +00:00
Marshall Clow 28eded3845 Mark is_final as a C++14 feature.
llvm-svn: 202991
2014-03-05 17:58:48 +00:00
Marshall Clow f2c10e1340 Remove definition of std::fmaf from libc++. Fixes bug #18910. This function should come from the C standard library. As a drive-by fix, update the tests to remove a warning from -Wabsolute-value
llvm-svn: 202990
2014-03-05 17:09:51 +00:00
Marshall Clow 39bca1ea99 Implement LWG #2212: std::is_final. This requires compiler support, which modern versions of clang provide. Also mark LWG #2230 as complete - no code changes needed.
llvm-svn: 202934
2014-03-05 03:39:25 +00:00