Commit Graph

1422 Commits

Author SHA1 Message Date
Marshall Clow 9393b5113b Fix Bug 19678 - libc++ does not correctly handle the regex: '[^\0]*'
llvm-svn: 209307
2014-05-21 16:29:50 +00:00
Marshall Clow ef0e8c391e Fix bug 19740; round-tripping a pointer through a stream doesn't work
llvm-svn: 209305
2014-05-21 16:02:20 +00:00
Richard Smith 80fd10e6e1 [modules] Add initial module map for libc++.
llvm-svn: 209265
2014-05-21 00:33:49 +00:00
Nico Weber 218f71e148 Update cstddef after clang r207606.
r207606 changed the __need_foo macros to behave like they do with gcc: If they
are set, _only_ the __need_foo stuff gets defined.  As a consequence, cstddef
no longer defined "offsetof".  It looks like the __need_foo defines aren't
needed anymore, so just remove them.

Fixes PR19723.

llvm-svn: 208942
2014-05-16 01:45:02 +00:00
Alp Toker 281dfe85d3 Fix typo 'fourty' in tests
llvm-svn: 208870
2014-05-15 11:33:29 +00:00
Alp Toker f03763a44b Fix typos
llvm-svn: 208869
2014-05-15 11:27:39 +00:00
Justin Bogner e077269764 Work around ABI differences due to LWG 2056 in tests
When testing against the system library, there is a relatively minor
ABI breakage that the std::future_errc values have been changed to
avoid using zero. Update the tests that rely on the values being
consistent.

llvm-svn: 208840
2014-05-15 01:57:42 +00:00
Justin Bogner 1f393c3eaf Remove XFAIL from a number of tests that aren't expected to fail
These tests haven't been failing on darwin11 or 12 since r189610 when
pr17027 was fixed, but they've been keeping the libc++ bot red by
XPASSing since then.

llvm-svn: 208831
2014-05-15 00:55:44 +00:00
Marshall Clow 5c520bd985 Add Address Sanitizer support to std::vector
llvm-svn: 208319
2014-05-08 14:14:06 +00:00
Marshall Clow 0fc6e981b0 Fix PR 19663. Some calls to find(vector<bool>) were returning iterators that were subtly invalid (didn't compare equal). Thanks to Erik Verbruggen for the report (and diagnosis)
llvm-svn: 208096
2014-05-06 15:33:23 +00:00
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