Dan Albert
55d029e6ae
Better defaults for in-tree libc++ with cmake.
...
This will detect if you are building libcxx in-tree and libcxxabi is
available. If so, it will default to using the in-tree libcxxabi by
setting LIBCXX_CXX_ABI to "libcxxabi", LIBCXX_LIBCXXABI_INCLUDE_PATHS to
"${CMAKE_SOURCE_DIR}/projects/libcxxabi/include" and will add "cxxabi"
as a proper dependency.
Patch by Russell Harmon.
llvm-svn: 214037
2014-07-26 23:08:33 +00:00
Eric Fiselier
aa873af53d
[libcxx] expose experimental::erased_type for all standard versions.
...
Summary: The polymorphic allocator implementation would greatly benefit by defining virtual functions in the dynlib instead of inline. In order to do that some types are going to have to be available outside of c++1y. This is the first step.
Reviewers: mclow.lists, EricWF
Reviewed By: EricWF
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4554
llvm-svn: 213889
2014-07-24 19:17:38 +00:00
Eric Fiselier
567bb79bf2
D4451: Fix copy/move issues casude by __tuple_leafs's converting constructor
...
llvm-svn: 213888
2014-07-24 18:48:34 +00:00
Eric Fiselier
d1854f9cb1
test commit
...
llvm-svn: 213887
2014-07-24 18:41:56 +00:00
Dan Albert
a950658e3c
Fix ctype_base::xdigit for Android.
...
Android's ctype implementation comes from openbsd, which for some reason
doesn't consider numbers to be hex digits.
llvm-svn: 213785
2014-07-23 19:32:03 +00:00
Marshall Clow
8116e1d1c3
Update the synopsis and comments with the results of LWG #2255 . No code to back it up at the moment; just comments
...
llvm-svn: 213768
2014-07-23 16:58:25 +00:00
Dan Albert
4339903c94
Fix classic_locale for Android.
...
Android's classic_locale begins at _ctype_ + 1.
llvm-svn: 213672
2014-07-22 17:32:56 +00:00
David Majnemer
8b51260274
Fix std::make_heap's worst case time complexity
...
std::make_heap is currently implemented by iteratively applying a
siftup-type algorithm. Since sift-up is O(ln n), this gives
std::make_heap a worst case time complexity of O(n ln n).
The C++ standard mandates that std::make_heap make no more than O(3n)
comparisons, this makes our std::make_heap out of spec.
Fix this by introducing an implementation of __sift_down and switch
std::make_heap to create the heap using it.
This gives std::make_heap linear time complexity in the worst case.
This fixes PR20161.
llvm-svn: 213615
2014-07-22 06:07:09 +00:00
Marshall Clow
f915d67c60
make the same change as in 213546 for vector<bool>
...
llvm-svn: 213547
2014-07-21 15:15:15 +00:00
Marshall Clow
0df880209d
In response to bug #20362 , change the order of operations in vector move assignment so that if the allocator move assignment throws, we aren't left with two objects pointing at the same memory. This is not a complete fix; I am unconvinced that a complete fix is possible. With this change in place, we will leak the old contents of the vector. LWG issue #2106 , when adopted, will make this problem illegal. Thanks to Thomas Koeppe for the report and analysis.
...
llvm-svn: 213546
2014-07-21 15:11:13 +00:00
Marshall Clow
3dd8846840
Fix bug #20335 - memory leak when move-constructing a string with unequal allocator. Thanks to Thomas Koeppe for the report
...
llvm-svn: 213269
2014-07-17 15:32:20 +00:00
Eric Fiselier
531d8b2bc4
[libcxx] Add <experimental/utility> header for LFTS.
...
Summary:
This patch adds the `<experimental/utility>` header as specified in the latest draft of the library fundamentals TS.
`<experimental/utility>` only contains `class erased_type`.
This patch also updates the documentation to list the `erased_type` class as "initial implementation complete".
Test Plan:
Three test cases where added:
1. Test that `_LIBCPP_VERSION` is defined.
2. Test that `<utility>` has been included.
3. Test that `erased_type` is in the correct namespace and is constexpr default constructible.
Reviewers: mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4510
llvm-svn: 213226
2014-07-17 05:31:31 +00:00
Eric Fiselier
371aac1adb
Change _LIBCXX_CONSTEXPR_AFTER_CXX11 to check for c++14 constexpr rules
...
llvm-svn: 213225
2014-07-17 05:16:18 +00:00
Eric Fiselier
68c89c2480
Test commit: Reverting whitespace changes
...
llvm-svn: 213223
2014-07-17 05:10:03 +00:00
Eric Fiselier
712ac189cc
Test commit: whitespace change
...
llvm-svn: 213222
2014-07-17 05:06:09 +00:00
Marshall Clow
f52c88f015
Correctly implement LWG 2049; std::is_destructible.
...
llvm-svn: 213163
2014-07-16 15:51:50 +00:00
Saleem Abdulrasool
f4a391c07f
Change Windows decoration on some base classes
...
Mark the base classes for time_get_byname and time_get as _LIBCPP_TYPE_VIS_ONLY
rather than _LIBCPP_TYPE_VIS. These base classes are templated types and cannot
be stored with export dll storage.
Fixes compilation with _LIBCPP_DLL for Windows when the time_get and
time_get_byname classes are used.
llvm-svn: 213116
2014-07-16 01:00:26 +00:00
Marshall Clow
0030af8c35
Support the built-in type-trait support in gcc 4.7 and later. Thanks to Albert Wong for the patch.
...
llvm-svn: 212727
2014-07-10 15:38:20 +00:00
Marshall Clow
b38f8f07c5
Add support for BIONIC C library (Android). Patch from Dan Albert
...
llvm-svn: 212724
2014-07-10 15:20:28 +00:00
Marshall Clow
490349d262
Fix warning in test - missing exception specifier for overload of operator new
...
llvm-svn: 212723
2014-07-10 15:19:50 +00:00
Marshall Clow
79d4ffbc8f
Add a reset method to the counting predicates in the test suite
...
llvm-svn: 212651
2014-07-09 21:04:22 +00:00
Marshall Clow
926731b1e5
string_view enhancements. Move to the correct namespace. Better constexpr support (thanks to Richard for the suggestions). Update the tests to match this. Add <experimental/__config for experimental macros/etc to live.
...
llvm-svn: 212569
2014-07-08 22:38:11 +00:00
Marshall Clow
56cca89fc3
Fix some failing tests for the standard containers. The tests were failing in 32-bit mode because they assumed that std::size_type and make_unsigned<ptrdiff_t>::type were always the same type. No change to libc++, just the tests.
...
llvm-svn: 212538
2014-07-08 15:19:40 +00:00
Marshall Clow
35af19ab1f
Minor cleanup for string_view; mostly from suggestions by Richard Smith. Also, make the tests pass under c++03
...
llvm-svn: 212185
2014-07-02 15:45:57 +00:00
Marshall Clow
38cae6330b
Fix libc++ bug #20039 : 'Constructing std::function from empty compatible std::function results in half-empty state' Thanks to Agustin Berge for the report, and for his and Eric Fiselier's work on a fix.
...
llvm-svn: 212070
2014-06-30 21:27:51 +00:00
Marshall Clow
afa72ed47c
Fix a typo in the noexcept calculation for __compressed_pair::swap. Thanks to EricWF for the bug report and the fix.
...
llvm-svn: 212046
2014-06-30 15:35:09 +00:00
Marshall Clow
3484495b3d
Add checking for the complexity guarantees in the standard
...
llvm-svn: 212017
2014-06-30 05:04:20 +00:00
Marshall Clow
157a8f91bd
Patch from Albert J. Wong to make type_traits take advantage of gcc intrinsics in 4.7 and later. No functionality change when using clang.
...
llvm-svn: 211755
2014-06-26 01:07:56 +00:00
David Fang
ed7987dcfe
eliminate install of duplicate headers (take 2)
...
Patch by Ryuta Suzuki
llvm-svn: 211629
2014-06-24 20:32:11 +00:00
Marshall Clow
f9af6140ff
Some calls to get<>() were qualified. Some were not. Qualify them all. Fixes bug #20092 . Thanks to Agustín Bergé for the bug report and the fix.
...
llvm-svn: 211563
2014-06-24 00:46:19 +00:00
Marshall Clow
2f4bfdecb3
Formatting improvements in the <string_view> synopsis suggested by RSmith. No functionality change.
...
llvm-svn: 211191
2014-06-18 17:44:04 +00:00
David Fang
09b61ebcbe
Revert "fixes duplicate header installation"
...
This reverts commit 0bd40d6c3da6719fecf77038673d453ff1eab25b.
llvm-svn: 210857
2014-06-12 23:19:55 +00:00
Marshall Clow
5aa8fa250d
Implement string_view from the library fundamentals TS (n4023). Also works in C++11 and 03, with reduced functionality (mostly in the area of constexpr)
...
llvm-svn: 210659
2014-06-11 16:44:55 +00:00
David Fang
7070be1160
fixes duplicate header installation
...
http://llvm.org/bugs/show_bug.cgi?id=18681
Patch by Ryuta Suzuki <oroppas gmail com>
llvm-svn: 210577
2014-06-10 20:26:54 +00:00
Marshall Clow
d0817f526c
Mark assign to be constepr only in c++14; can't have constexpr fns that return void in C++11
...
llvm-svn: 210562
2014-06-10 18:52:57 +00:00
Marshall Clow
9b0af34d96
Make the helper routines in string really be constexpr. This required a bit of refacoring in algorithm as well. Give them better names while we're at it. All of these are internal rotines; no visible functionality change.
...
llvm-svn: 210561
2014-06-10 18:51:55 +00:00
Marshall Clow
98763eb520
A bunch of the char.traits tests were using unicode literals. #ifdef those bits out on c++03, since it doesn't support u"" and U "" style strings.
...
llvm-svn: 210560
2014-06-10 18:46:59 +00:00
David Blaikie
bfd92afe01
Update Arcanist config to point to reviews.llvm.org
...
llvm-svn: 210558
2014-06-10 18:29:36 +00:00
Marshall Clow
cd68ae3f10
Fixed damaged row in issues table; thanks to STL for the catch
...
llvm-svn: 210500
2014-06-09 23:27:27 +00:00
Marshall Clow
57e06dfb41
Testing infastructure: A template for char_traits where all the functions are constexpr, and a comparison predicate which counts how many times it's been called.
...
llvm-svn: 210381
2014-06-06 22:33:40 +00:00
Marshall Clow
c369914758
Since we now have a value for __cplusplus for c++14, teach libc++ about it
...
llvm-svn: 210380
2014-06-06 22:31:09 +00:00
Richard Smith
ff0aff3caf
Use __builtin_operator_new/__builtin_operator_delete when available. This
...
allows allocations and deallocations to be optimized out.
llvm-svn: 210211
2014-06-04 19:54:15 +00:00
David Majnemer
58a0a70fb2
Handle partial nanosleeps in this_thread::sleep_for
...
Signals may result in nanosleep returning with only some of the
requested sleeping performed.
Utilize nanosleep's "time-remaining" out parameter to continue sleeping
when this occurs.
llvm-svn: 210210
2014-06-04 19:43:20 +00:00
Nico Weber
7babe4f074
Make meta.trans.other/aligned_storage.pass.cpp pass on arm.
...
The maximum alignment on arm is 8, not 16 like on x86. Use alignof(max_align_t)
to make the test work in both cases.
llvm-svn: 210195
2014-06-04 16:25:58 +00:00
Nico Weber
1d1b46cdf7
Make locales (and transitively, std::endl) work reliably with gcc.
...
libc++ currently relies on undefined initialization order of global
initializers when using gcc:
1. __start_std_streams in iostream.cpp calls locale:🆔 :_init, which assigns
an id to each locale::facet in an initializer
2. Every facet has a static locale::id id, whose constructor sets the facet's
id to 0
If 2 runs after 1, it clobbers the facet's assigned consecutive id, causing
exceptions to be thrown when e.g. running code like "cout << endl".
To fix this, let _LIBCPP_CONSTEXPR evaluate to "constexpr" instead of nothing
with gcc. locale::id's constructor is marked _LIBCPP_CONSTEXPR, which ensures
that it won't get an initializer that could potentially run after the
iostream.cpp initializer. (This remains broken when building with msvc.)
Also switch constexpr-specific code in bitset to use __SIZEOF_SIZE_T__ instead
of __SIZE_WIDTH__, because gcc doesn't define the latter.
Pair-programmed/debugged with Dana Jansens.
llvm-svn: 210188
2014-06-04 15:46:56 +00:00
Marshall Clow
425f00817c
Add a note about debug mode being non-functional
...
llvm-svn: 210162
2014-06-04 04:49:49 +00:00
David Majnemer
2dfdfdf45c
[libc++] Don't return uninitialized data from random_device::operator()
...
Make sure we appropriately retry calls to read if the return result is
less than what we asked for.
Additionally, check and handle IO errors: EINTR results in the read
operation getting restarted; other errors turn into exceptions.
llvm-svn: 210061
2014-06-03 02:40:39 +00:00
David Majnemer
1e9592a9c7
[libc++] random_device fails if open returns zero
...
random_device::random_device(const string&) wrongly assumes that open
can only validly return a file descriptor greater than zero.
This results in random_device believing that it didn't successfully open
the device causing it to throw in it's constructor, this ends up leaking
a file descriptor.
The fix is simple, don't error on file descriptors which are zero.
llvm-svn: 210060
2014-06-03 02:21:37 +00:00
Marshall Clow
f39d914d33
First cut at a post c++14 status page
...
llvm-svn: 210056
2014-06-02 23:37:13 +00:00
Nico Weber
0797874f33
Remove unused code in a libc++ test.
...
Other tests in this directory use this type, so it's probably copypasta from
there.
(test_buf only forwards to the superclass in all tests where it's used though,
so I wonder if it can be replaced with just using filebuf / wfilebuf
everywhere?)
llvm-svn: 210019
2014-06-02 12:00:08 +00:00
Marshall Clow
5f0701f270
Preparation for <string_view>. More helper functions that can be shared between <string> and <string_view>. No functionality change
...
llvm-svn: 210002
2014-06-02 02:22:49 +00:00
Justin Bogner
ca14e2b132
Fix XFAIL condition from r208840
...
The XFAILs in r208840 were too general. They were meant to only apply
to testing when use_system_lib was set.
llvm-svn: 209972
2014-05-31 07:59:03 +00:00
Nico Weber
9e3548875a
Add a _LIBCPP_CONSTEXPR that was missed in r170026.
...
(clang doesn't complain about this, but gcc does. This is necessary for a
follow-up patch that will enable _LIBCPP_CONSTEXPR for gcc.)
llvm-svn: 209888
2014-05-30 12:09:47 +00:00
Nico Weber
ded9de5981
fix typo
...
llvm-svn: 209819
2014-05-29 14:58:38 +00:00
David Majnemer
31234844ef
Linux: Correctly identify valid error codes
...
[syserr.errcat.objects]p4 specifies that
system_category().default_error_condition(ev) map to
error_condition(posv, generic_category()) if ev could map to a POSIX
errno.
Linux reserves up to and including 4095 for errno values, use this as a
bound.
This fixes syserr.errcat.objects/system_category.pass.cpp on Linux.
llvm-svn: 209795
2014-05-29 05:02:22 +00:00
Marshall Clow
2de60eb213
Fix a problem exposed by r208825, which caused bind (and other bits of libc++) to stop working. And tests
...
llvm-svn: 209785
2014-05-29 01:10:28 +00:00
Marshall Clow
af236d36fb
Fix bug 19840, where some tests were not testing what we wanted. Thanks to Eric for the bug report
...
llvm-svn: 209520
2014-05-23 15:30:23 +00:00
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
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
Marshall Clow
4703f76376
Update synposis in <memory> to show move semantics for weak_ptr; add tests for already existing move semantics. Mark LWG issues #2315 (no changes needed), 2316 (move semantics for weak_ptr), 2252 (previous commit) and 2271 (previous commit) as complete.
...
llvm-svn: 202931
2014-03-05 03:12:04 +00:00
Marshall Clow
7f10fc480a
LWG Issue #2271 : regex_traits::lookup_classname specification unclear. libc++ already does the right thing; just update the tests.
...
llvm-svn: 202904
2014-03-04 22:44:34 +00:00
Marshall Clow
d9e7cf3efd
LWG issue #2252 : Add more tests for exception safety. No changes needed in the library
...
llvm-svn: 202885
2014-03-04 20:31:21 +00:00
Marshall Clow
7493a29398
Fix issue number error; 2141 --> 2291 and mark it as complete
...
llvm-svn: 202884
2014-03-04 20:29:09 +00:00
Marshall Clow
5d658fbbdf
Add a SG1 paper and some SG1 issues that affect the library to the task list.
...
llvm-svn: 202881
2014-03-04 19:40:36 +00:00
Marshall Clow
85a15f067e
Apply David Majnemer's patch updating the links to the papers from Chicago and Issaquah.
...
llvm-svn: 202878
2014-03-04 19:22:53 +00:00
Marshall Clow
53ec054da4
Mark issues #2240 (wording only) and #2268 (revision 202876) as complete.
...
llvm-svn: 202877
2014-03-04 19:18:36 +00:00
Marshall Clow
53b88dad6f
Implement LWG #2268 : Setting a default argument in the declaration of a member function assign of std::basic_string.
...
llvm-svn: 202876
2014-03-04 19:17:19 +00:00
Peter Collingbourne
99aadbdb7d
[libc++] Const qualify __gnu_cxx::hash_map<>::const_iterator::pointer type.
...
Differential Revision: http://llvm-reviews.chandlerc.com/D2811
llvm-svn: 202749
2014-03-03 19:50:01 +00:00
Marshall Clow
f519be343b
Implement LWG 2324: Insert iterator constructors should use addressof(). Add two new container classes to the test suite that overload operator &, and add test cases to the insert/front_insert/back_insert iterator tests that use these containers.
...
llvm-svn: 202741
2014-03-03 19:20:40 +00:00
Marshall Clow
c451b43607
Remove a stray tab that snuck into a test. No functionality change
...
llvm-svn: 202739
2014-03-03 19:16:40 +00:00
Marshall Clow
05c8dad230
Implement LWG Paper n3887: Consistent Metafunction Aliases. This adds std::tuple_element_t<> as an alias for tuple_element<>::type. Clean up the synopsis for tuple_element in <utility> as well.
...
llvm-svn: 202673
2014-03-03 06:18:11 +00:00
Marshall Clow
06965c1fd0
Per N3924, mark random_shuffle as deprecated in the synopsis for <algorithm>. Since we don't actually do anything when a call is deprecated, there is no functionality change. Maybe someday, we'll decide to warn when using a deprecated function.
...
llvm-svn: 202672
2014-03-03 06:14:19 +00:00
Marshall Clow
6a640a18a4
Implement LWG Issue #2285 - make_reverse_iterator. Also mark issues #1450 and #2205 as complete; they are just wording changes in the standard. Mark issues #2359 , #2320 and #2322 as complete - libc++ implements them already.
...
llvm-svn: 202671
2014-03-03 01:24:04 +00:00
Marshall Clow
4ab4534964
More LWG issues. Mark #2182 , #2323 and #2213 as complete. Add a test for #2339 , and mark that as complete. No actual changes to the libc++ code; all of these were already in place.
...
llvm-svn: 202407
2014-02-27 16:13:36 +00:00
Marshall Clow
c204c130fa
LWG issue #2188 : Reverse iterator does not fully support targets that overload operator&. Also mark #2272 and #2299 as complete; libc++ already implements them.
...
llvm-svn: 202339
2014-02-27 02:11:50 +00:00
Bob Wilson
fa5da05c86
Don't install CMakeLists.txt along with the headers.
...
llvm-svn: 202280
2014-02-26 17:14:09 +00:00
Marshall Clow
16da324051
Implement LWG issue 2306: match_results::reference should be value_type&, not const value_type&. This is a general move by the LWG to have the reference type of read-only containers be a non-const reference; however, there are no methods that return a non-const reference to a match_result entry, so there's no worries about getting a non-const reference to a constant object.
...
llvm-svn: 202214
2014-02-26 01:56:31 +00:00
Marshall Clow
11918cff19
Mark LWG issue 2299 as complete. No code changes; libc++ already implements this.
...
llvm-svn: 202203
2014-02-25 23:11:19 +00:00
Marshall Clow
4da015b9b4
Mark LWG Issue 2257 as complete.
...
llvm-svn: 202162
2014-02-25 16:35:39 +00:00
Marshall Clow
f433d63439
Mark LWG Issues 2278 and 2313 as complete. No code changes needed; libc++ already implemented both of these.
...
llvm-svn: 202161
2014-02-25 16:25:55 +00:00
Marshall Clow
0d1560e10e
Implement LWG issue 2301: Mark std::tie as constexpr
...
llvm-svn: 202158
2014-02-25 16:11:46 +00:00
Marshall Clow
31be78b27d
Fix historical #ifdef. Use __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__ when compiling with clang. No functionality change. Noteto self: It is important to run the regression tests on the copy of the code that you've changed.
...
llvm-svn: 201938
2014-02-22 15:13:48 +00:00
Juergen Ributzka
88ec12cd76
Revert "Fix historical #ifdef. Use __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__ when compiling with clang. No functionality change."
...
This reverts commit r201864, because it breaks our build bots.
llvm-svn: 201892
2014-02-21 21:06:36 +00:00
Marshall Clow
0e23e04f9a
Fix historical #ifdef. Use __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__ when compiling with clang. No functionality change.
...
llvm-svn: 201864
2014-02-21 18:07:52 +00:00
Yaron Keren
7b89f9958f
Solve the errors
...
Error 1 error C2681: 'add_rvalue_reference<_Tp*>::type' : invalid expression
type for dynamic_cast c:\libcxx\include\type_traits
This is one more step getting libcxx compile under Visual C++. The patch is
#if defined(_LIBCPP_MSVC) so will affect only this build.
When libcxx can be compiled, it will probably require the current version or
maybe even the next Update of Visual C++ 2013.
Patch by G M!
llvm-svn: 201844
2014-02-21 10:00:31 +00:00
Chandler Carruth
265b83a87f
Teach libc++ to use the compiler-provided C-compatible ::max_align_t
...
rather than its own type for std::max_align_t. This is particularly
relevant as the types may not be ABI compatible despite users expecting
them to be.
llvm-svn: 201843
2014-02-21 08:37:30 +00:00
Marshall Clow
7d35711187
Implement LWG Issues #2329 and #2332 - disallow iterators into temporary regexes and regexes into temporary strings
...
llvm-svn: 201717
2014-02-19 21:21:11 +00:00
Marshall Clow
962003126f
Mark issues 2280, 2258, 2304, 2317, 2350 and 2346 as completed.
...
llvm-svn: 201704
2014-02-19 17:55:46 +00:00
Marshall Clow
6c3f5ffbb8
Implement LWG Issue: 2280. begin/end for arrays should be constexpr and noexcept, plus a drive-by fix for cbegin/cend suggested by Peter Sommerlad.
...
llvm-svn: 201703
2014-02-19 17:53:30 +00:00
Marshall Clow
9d67c6d5fd
Implement LWG2350: min, max, and minmax should be constexpr.
...
llvm-svn: 201697
2014-02-19 16:51:35 +00:00
Marshall Clow
551365da33
Implement LWG Issue 2346: integral_constant's member functions should be marked noexcept
...
llvm-svn: 201534
2014-02-17 22:18:51 +00:00
Marshall Clow
53d8b20078
Remove tabs that crept in during an earlier refactoring. No functionality change
...
llvm-svn: 201472
2014-02-16 01:57:26 +00:00
Marshall Clow
b1ad26901f
Mark issue 2293, 2241 and 2308 as complete
...
llvm-svn: 201460
2014-02-15 05:41:48 +00:00
Marshall Clow
bacc03ef8d
First pass at the Issaquah issues list
...
llvm-svn: 201459
2014-02-15 05:10:39 +00:00
Marshall Clow
cdf2fae610
Add a test to make sure that vector supports incomplete types
...
llvm-svn: 201349
2014-02-13 17:56:12 +00:00
Yaron Keren
3ef24c4f9a
This solves warning C4005: '_NOEXCEPT' : macro redefinition when compiling
...
with Visual C++ 2013 by making libcxx definition text-identical to yvals.h.
Persumably this definition is for older Visual C++ versions.
In such cases it will still be defined so no functionality change.
Other platforms should not be affected as this is inside
#elif defined(_LIBCPP_MSVC)
Patch by G M!
llvm-svn: 201328
2014-02-13 14:02:28 +00:00
Marshall Clow
5bd869490b
Fix for PR17606 - result_of (and INVOKE) works incorrectly for member function pointers with ref qualifiers. Also a drive-by fix for common_type in C++03 mode. Thanks to Michel Morin for the bug report and the proposed fix.
...
llvm-svn: 201101
2014-02-10 17:40:28 +00:00
Marshall Clow
74cf6ff5e5
Fix for PR18735 - self-assignment for map/multimap gives incorrect results in C++03
...
llvm-svn: 201021
2014-02-08 04:03:14 +00:00
Joerg Sonnenberger
a0a143690d
Avoid signed vs unsigned compare warnings. From Dimitry Andric.
...
llvm-svn: 200993
2014-02-07 21:14:29 +00:00
Peter Collingbourne
09df4a6675
Support forward_list<Incomplete Type>. Patch by Zhihao Yuan!
...
llvm-svn: 200814
2014-02-05 01:44:17 +00:00
Howard Hinnant
7fe6441cc3
Albert Wong: Fix thread.thread.id/lt.pass.cpp to not assume thread::id() produces a minimal value. This enables this test to pass on andriod arm.
...
llvm-svn: 200793
2014-02-04 19:51:48 +00:00
Marshall Clow
0c8bb8f0f2
Fix numeric.limits.members/traps.pass.cpp to pass on non-x86 architectures. Fixes bug #18468
...
llvm-svn: 200724
2014-02-03 23:26:56 +00:00
Logan Chien
22747e621e
Remove default function template argument from the header.
...
GCC will treat the default function template arguments as a
compilation error if C++0x is not enabled.
This commit workaround the compilation error by moving the
SFINAE check to function argument instead of the template
argument.
llvm-svn: 200523
2014-01-31 09:30:46 +00:00
David Fang
7584238232
lit.site.cfg:cxx_under_test should take precedence over 'which clang++'
...
(reviewed by Marshall Clow)
llvm-svn: 200364
2014-01-29 01:54:52 +00:00
Marshall Clow
30f1883eee
Removed extra line that I left in when committing 199694. Thanks to Jared Grubb for the catch.
...
llvm-svn: 200108
2014-01-26 01:59:59 +00:00
Marshall Clow
f246033698
Rename some internal templates to avoid conflict with complier intrinsics. __is_constructible --> __libcpp_is_constructible, __is_nothrow_constructible --> __libcpp_is_nothrow_constructible, and __is_nothrow_assignable --> __libcpp_is_nothrow_assignable. No functionality change.
...
llvm-svn: 200010
2014-01-24 15:27:41 +00:00
Peter Collingbourne
a5adf489b7
Const qualify __mem_fn call operator
...
QOI improvement.
Differential Revision: http://llvm-reviews.chandlerc.com/D2059
llvm-svn: 199848
2014-01-22 22:56:52 +00:00
Marshall Clow
d724d60fff
Removed extra space; thanks to thakis_'s eagle eye
...
llvm-svn: 199695
2014-01-21 00:03:44 +00:00
Marshall Clow
683268b2d8
Fixed test failure in is_iec559.pass.cpp on darwin-ppc32. Thanks to David Fang for the report (and suggested fix)
...
llvm-svn: 199694
2014-01-20 23:57:16 +00:00
Marshall Clow
7132122196
Fix erroneous test; was failing on darwin-ppc32. Fixes PR18469.
...
llvm-svn: 199542
2014-01-18 03:41:54 +00:00
Marshall Clow
9aafa898f9
Update __parse_DUP_COUNT and __parse_BACKREF to use the traits class to recognize digits. Fixes PR18514
...
llvm-svn: 199541
2014-01-18 03:40:03 +00:00
Alp Toker
5fea974b6b
Adjust build fix from r199494 to use C++ casts
...
Change suggested by Joerg Sonnenberger!
llvm-svn: 199500
2014-01-17 16:17:24 +00:00
Alp Toker
0b438a9f63
Build fix for gcc builtin
...
The __sync_add_and_fetch() builtin parameter is volatile but clang has
'different' type checking and ends up accepting this code.
Undo the C++ cast from r198505 to get libc++/LLVM building with g++ while this
is investigated.
llvm-svn: 199494
2014-01-17 14:24:23 +00:00
Marshall Clow
354d39cabc
Add license headers to a bunch of libc++ files that were missing them. No functionality change. Fixes 18291. Thanks to Nico for the bug report and the patch.
...
llvm-svn: 199400
2014-01-16 16:58:45 +00:00
Marshall Clow
9f4be3fa4f
Apply patch for Albert Wong: 'Modify testit to allow filtering tests by prefixes'.
...
llvm-svn: 199318
2014-01-15 16:28:42 +00:00
Marshall Clow
b183f8594f
Whoops! Set the default in the last commit to c++1y instead of c++11
...
llvm-svn: 199224
2014-01-14 17:04:06 +00:00
Marshall Clow
4cdc6feb4f
Update lib/buildit and test/testit to both pay attention to an env flag CXX_LANG, which people can set to 'c++03', 'c++11' or 'c++1y' to build/test using that language variant. If you don't set this env variable, you get c++11, just like today. Drive-by fix; remove duplicate -nostdinc++.
...
llvm-svn: 199222
2014-01-14 17:00:40 +00:00
Marshall Clow
ec931c0721
Rename libc++ internal templates __is_void, __is_integral, __is_floating_point, __is_pointer, __is_function_imp, __is_function, __is_member_function_pointer, __is_member_pointer, __is_signed_impl, __is_signed, __is_unsigned_impl, __is_unsigned to __libcpp_is_XXX, because some compilers have decided that __is_XXX are keywords. No functionality change.
...
llvm-svn: 199184
2014-01-14 05:13:45 +00:00
Marshall Clow
54f6bd59f5
Fix a bug in regex_token_iterator's copy constructor. Caught by Bob Wilson.
...
llvm-svn: 199122
2014-01-13 17:47:08 +00:00
Marshall Clow
79b0fee3c6
Fix PR18404 - 'Bug in regex_token_iterator::operator++(int) implementation'. Enhance the tests for regex_token_iterator and regex_iterator.
...
llvm-svn: 198878
2014-01-09 18:25:57 +00:00
Joerg Sonnenberger
70d4ba7f19
Replace casts of __impl_ with the correct reinterpret_cast of the
...
address. Restores the assembly of before r198504.
llvm-svn: 198698
2014-01-07 19:21:13 +00:00
Marshall Clow
a429ba738c
Back out the <type_traits> changes from r198431; they were breaking when building with glibc. Need to find a better solution for PR18218.
...
llvm-svn: 198623
2014-01-06 18:12:50 +00:00
Marshall Clow
a889636aa0
Removed extra trailing underscore in #ifdef (__GNUC___ --> __GNUC__ )
...
llvm-svn: 198618
2014-01-06 15:23:02 +00:00
Marshall Clow
a3e6e2b286
Rename several internal templates to get rid of ___ (triple underscores) or worse, four. No functionality change.
...
llvm-svn: 198608
2014-01-06 14:00:09 +00:00
Joerg Sonnenberger
634b9dd768
Switch to using C++ style casts.
...
llvm-svn: 198505
2014-01-04 17:43:00 +00:00
Yaron Keren
acb42aefd7
80 cols fixes.
...
llvm-svn: 198482
2014-01-04 09:27:39 +00:00
Yaron Keren
f8f56755e0
Implement the functions: clz, clzl, clzll, ctz, ctzl, and ctzll
...
for libcxx when compiled with Visual C++ on Win32 and Win64.
clang and gcc (MinGW) compilers provide these implementations themselves.
llvm-svn: 198481
2014-01-04 08:56:00 +00:00
Marshall Clow
0724bf6767
Rename ___make_pair_return to __make_pair_return_impl; ___make_tuple_return to __make_tuple_return_impl; and ____iterator_traits to __iterator_traits_impl. Part of a campaign to remove > 2 underscores from libc++. No functionality change.
...
llvm-svn: 198457
2014-01-03 22:55:49 +00:00
Marshall Clow
d41295da72
Patch by Howard. First part of fix for PR18218; add type traits needed to do the right thing. Fix the problems in PR18218 for isnan and pow - they also need to be applied to the other functions in <cmath>. Also, a drive-by fix for the test - now actually calls test_abs()
...
llvm-svn: 198431
2014-01-03 18:21:14 +00:00
NAKAMURA Takumi
d40d387fb1
Update the copyright credits -- Happy new year 2014!
...
FIXME: Dragonegg may be updated at non-trivial changes.
llvm-svn: 198274
2014-01-01 08:27:31 +00:00
Marshall Clow
ce81aed463
Make cv_status a class enum. Fixes PR18314. Thanks to Andersca for the report and the patch.
...
llvm-svn: 197921
2013-12-23 22:14:27 +00:00
Yaron Keren
21a697b8b1
Empty line between two unrelated #ifdefs.
...
llvm-svn: 197810
2013-12-20 13:19:45 +00:00
Logan Chien
b0d5be563b
Fix GCC unknown pragma warning in libc++.
...
We should check defined(__clang__) before the usage of the
clang diagnostic pragmas.
The [-Wswitch] warning in src/future.cpp should be ignored.
As the result, the equivalent GCC pragma is added.
llvm-svn: 197314
2013-12-14 06:45:09 +00:00
Logan Chien
ca83921ddc
GCC does not support strong enum in pre-C++0x mode.
...
GCC does not support strong enum if -std=c++0x is not used.
Without the strong enum, we will see following error:
In file included from libcxx/include/ostream:131:0,
from libcxx/include/sstream:174,
from libcxx/include/complex:247,
from cpp03-headers.cpp:11:
libcxx/include/ios:419:68: error: 'io_errc' is not a class or namespace
libcxx/include/ios:420:66: error: 'io_errc' is not a class or namespace
To workaround this issue, this commit will define
_LIBCPP_HAS_NO_STRONG_ENUMS when we are compiling with
g++ without c++0x.
llvm-svn: 197313
2013-12-14 06:44:09 +00:00
Marshall Clow
c66a611b27
Move std::begin(array) and std::end(array) out from under an #ifdef that was preventing people from building libc++ using gcc. This corrects a mistake that I introduced in r196058
...
llvm-svn: 197061
2013-12-11 19:32:32 +00:00
Marshall Clow
6bc32ebf35
Refactored a bunch of duplicated code in <ostream>. Made a new routine called __put_character_sequence, and made nine places call it.
...
llvm-svn: 196951
2013-12-10 19:25:49 +00:00
Marshall Clow
8283ba3704
Refactor some of the operations in <string> so that they can be reused; no functionality change
...
llvm-svn: 196788
2013-12-09 16:00:28 +00:00
Howard Hinnant
395485efc0
Give all members of exception types default visibility. Lack of this is causing some illegal code relocations rare and hard to reproduce cases.
...
llvm-svn: 196411
2013-12-04 21:03:23 +00:00
Marshall Clow
c3deeb5f89
Found six (nmostly) identical files named 'test_allocator.h' in the libcxx test suite. Moved one to /support, made it a superset, and removed all but one of the others, and iupdated all the includes. Left the odd one (thread/futures/test_allocator.h) for later.
...
llvm-svn: 196174
2013-12-03 00:18:10 +00:00
Marshall Clow
e7d582a75c
Found two identical files named 'allocators.h' in the libcxx test suite. Moved one to /support, removed the other, and iupdated all the includes. No functionality change
...
llvm-svn: 196127
2013-12-02 18:08:31 +00:00
Marshall Clow
a26fcc7989
Found two identical files named 'DefaultOnly.h' in the libcxx test suite. Moved one to /support, removed the other, and iupdated all the includes. No functionality change
...
llvm-svn: 196118
2013-12-02 17:00:56 +00:00
Marshall Clow
3772a46ab4
Fix for PRPR17934; based on a fix suggested by Peter Sommerlad
...
llvm-svn: 196058
2013-12-02 03:24:33 +00:00
Sylvestre Ledru
3973d59f9b
Remove executable permissions on a text file
...
llvm-svn: 196041
2013-12-01 10:15:11 +00:00
Howard Hinnant
6ef2bb02f5
Remove _LIBCPP_TRIVIAL_PAIR_COPY_CTOR=0 for __APPLE__, no longer needed.
...
llvm-svn: 195796
2013-11-27 00:53:02 +00:00
Marshall Clow
e34f6f6a12
There were two identical files named 'min_allocator.h'. Move one of them to /support and delete the other. Then adjust all the tests that used them to include the moved one. No functionality change.
...
llvm-svn: 195785
2013-11-26 20:58:02 +00:00
Joerg Sonnenberger
c55d97b1f9
Don't use T as template argument, it is part of the application
...
namespace.
llvm-svn: 195693
2013-11-25 22:44:20 +00:00
Yaron Keren
e050d66e12
Compiling libcxx with gcc 4.6.4 (MingW) produces these errors:
...
type_traits:3280:31: error: expected primary-expression before 'decltype'
type_traits:3280:29: error: expected ';' at end of member declaration
memory:2415:49: error: function 'std::__1::default_delete<_Tp>::default_delete()'
defaulted on its first declaration must not have an exception-specification
memory:2435:49: error: function 'std::__1::default_delete<_Tp []>::default_delete()'
defaulted on its first declaration must not have an exception-specification
The attached patch defines _LIBCPP_HAS_NO_ADVANCED_SFINAE and
_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS for gcc version < 4.7, making
the library compile with gcc 4.6.4.
llvm-svn: 195431
2013-11-22 09:22:12 +00:00
Marshall Clow
028875aa7c
Patch by Xing Xue to improve libc++ support for AIX
...
llvm-svn: 195144
2013-11-19 19:16:03 +00:00
Marshall Clow
eed0bdee59
Fix a test that I broke over the weekend
...
llvm-svn: 195143
2013-11-19 19:14:27 +00:00
Marshall Clow
7e1ea8d288
Patch by Bruce Mitchener. Change all references to EMSCRIPTEN to __EMSCRIPTEN__. If you're not using the PP symbol EMSCRIPTEN, then you should see no functionality change.
...
llvm-svn: 195136
2013-11-19 18:05:03 +00:00
Yaron Keren
f16f037060
G M suggestion: conditionally include files on _WIN32.
...
llvm-svn: 195045
2013-11-18 21:30:19 +00:00
Yaron Keren
fbeb63c0d1
This patch implements snprintf_l function in a way similar to the other
...
functions in src/support/win32/locale_win32.cpp and locale_win32.h,
calling upon vsnprintf for which there is a MingW correct alternative.
Note! __USE_MINGW_ANSI_STDIO is not modified in this patch. In order to
use the __mingw version it must be defined before including the MingW
headers.
llvm-svn: 195044
2013-11-18 21:12:14 +00:00
Bill Wendling
39d0c93b70
Set the permissions for 'experimental' and its context to the correct values.
...
llvm-svn: 194993
2013-11-18 07:01:16 +00:00
Yaron Keren
c0299d7f53
Fix-it suggestion for fixing min or max defines on Windows.
...
llvm-svn: 194891
2013-11-15 23:41:01 +00:00
Yaron Keren
6e72b8ba8c
Windows.h is not required.
...
llvm-svn: 194870
2013-11-15 22:54:15 +00:00
Marshall Clow
dfdac03c8f
Move <optional> into include/experimental, and into the std::experimental namespace, since it's not part of C++14, but of an upcoming TS
...
llvm-svn: 194867
2013-11-15 22:42:10 +00:00
Justin Bogner
fd6cfe92d3
Add the CMakeLists.txt that was missed in r194825
...
llvm-svn: 194838
2013-11-15 18:34:43 +00:00
Howard Hinnant
6a0d6cea40
Justin Bogner: This makes the headers available in the build directory, making it
...
easier to use freshly-built clang with freshly-built libc++.
Basically, this makes it possible to run clang with libc++ without
having to install it, even if you don't have any version of libc++
installed in /usr/
llvm-svn: 194825
2013-11-15 17:18:57 +00:00
Howard Hinnant
f9fd0d6d11
This is a followup to r194536, which changed the pair copy constructor to be
...
trivial in C++03, thus making it trivial in both C++03 and C++11.
This patch allows one to opt-in/out of this decision with a macro. You can
choose to have the pair copy constructor always be trivial, or always be
non-trivial. The flag controlling this is now _LIBCPP_TRIVIAL_PAIR_COPY_CTOR.
The client can define this flag to 1, and the pair copy constructor will be
trivial (when possible of course), or to 0, and the pair copy constructor will
be nontrivial.
Default settings for this flag are set in <__config> (as usual). With this
commit the default is _LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 for all platforms
except __APPLE__, which defaults to _LIBCPP_TRIVIAL_PAIR_COPY_CTOR=0.
llvm-svn: 194742
2013-11-14 22:52:25 +00:00
Marshall Clow
513ecaba91
Fixed bug in quoted strings implementation. Added test to be sure. Thanks to Peter Sommerlad for the report (and suggested fix)
...
llvm-svn: 194725
2013-11-14 20:01:38 +00:00
Marshall Clow
21fee96f69
Move <dynarray> into include/experimental, and into the std::experimental namespace, since it's not part of C++14, but of an upcoming TS
...
llvm-svn: 194614
2013-11-13 22:44:48 +00:00
Howard Hinnant
ccad8c32e0
This fixes a very subtle ABI problem concerning the copy constructor of
...
pair, and a couple of pair-like implementation detail types. The
C++98/03 and 11 standards all specify that the copy constructor of
pair<int, int> is trivial. However as libc++ tracked the draft C++11
standard over the years, this copy constructor became non-trivial, and
then just recently was corrected back to trivial for C++11.
Unfortunately (for libc++1) the Itanium ABI specifies different calling
conventions for trivial and non-trivial copy constructors. Therefore
currently the C++03 libc++ copy constructor for pair<int, int> is ABI
incompatible with the C++11 libc++ copy constructor for pair<int, int>.
This is Bad(tm). This patch corrects the situation by making this copy
constructor trivial in C++03 mode as well.
Just in case it is needed for an incomplete C++11 compiler, libc++
retains the ability to support pair with rvalue references, but without
defaulted special members. However the pair needs non-trivial special
members to implement this special case, (as it did when clang was in
this place a couple of years ago).
During this work a bug was also found and fixed in
is_trivially_constructible.
And there is a minor drive-by fix in <__config> regarding
__type_visibility__.
A test is updated to ensure that the copy constructor of pair<int, int>
is trivial in both C++03 and C++11. This test will necessarily fail for
a compiler that implements rvalue references but not defaulted special
members.
llvm-svn: 194536
2013-11-13 00:39:22 +00:00
Marshall Clow
c1cf981823
Patch from Bruce Mitchener; fixes two typos in comments. No functionality change. PR17843
...
llvm-svn: 194432
2013-11-11 23:27:19 +00:00
Howard Hinnant
88960d151e
Tell libc++abi whether or not libc++ has declared bad_array_length.
...
llvm-svn: 194207
2013-11-07 17:15:51 +00:00
Marshall Clow
57b8f44c87
More duplicate code removal in <locale>. Hoist common parsing code into two templates: num_get::__do_get_signed and num_get::__do_get_unsigned, and make the do_get routines call them. No functionality change.
...
llvm-svn: 194185
2013-11-07 01:00:50 +00:00
Howard Hinnant
4478b25ade
Fix several tuple bugs that were exposed by clang's implementation of CWG 1402. This fixes http://llvm.org/bugs/show_bug.cgi?id=17798 .
...
llvm-svn: 194154
2013-11-06 17:45:43 +00:00
Marshall Clow
e427322327
Fix an off-by-one error in basic_string::__grow_by, where it would incorrectly throw length_error (instead of bad_alloc) when attempting to resize the string to 'max_size()'. Add tests for resizing to max_size +/-1
...
llvm-svn: 194151
2013-11-06 14:24:38 +00:00
Marshall Clow
9d66b72aa9
Refactor floating point code for num_get::do_get into a template. No functionality change
...
llvm-svn: 194080
2013-11-05 14:28:52 +00:00
Marshall Clow
99c096472d
Better inline marking for __does_policy_contain. Thanks to Chongyu Zhu for the catch
...
llvm-svn: 193963
2013-11-03 22:06:53 +00:00
Marshall Clow
222d1c7f13
Mark __does_policy_contain as 'inline'. Thanks to Chongyu Zhu for the catch
...
llvm-svn: 193962
2013-11-03 20:07:47 +00:00
Marshall Clow
b1915875d0
Fix LWG Issue 2078. Make std::async(policy,...) try multiple policies until one succeeds.
...
llvm-svn: 193960
2013-11-03 15:43:35 +00:00
Marshall Clow
e1bedf4e93
LWG issue 2341; Make the two variants of basic_ostream::seekp and basic_istream::seekg behave consistently; update tests to make sure
...
llvm-svn: 193814
2013-10-31 22:20:45 +00:00
Marshall Clow
f5fa53882f
Fixes PR17148
...
llvm-svn: 193772
2013-10-31 17:23:08 +00:00
Marshall Clow
84413437ce
Update status of issues
...
llvm-svn: 193228
2013-10-23 05:59:18 +00:00
Marshall Clow
07c28fe026
Mark seed_seq default constructor and size() as noexcept. This is implied, but not required by LWG issue 2180
...
llvm-svn: 193227
2013-10-23 05:56:47 +00:00
Marshall Clow
ef57b656f1
Patch by GM: Turn off 'deprecated' warnings when building with MSVC, and add '-Werror=return-type' to catch funtions that aren't returning what they should.
...
llvm-svn: 193088
2013-10-21 15:56:35 +00:00
Marshall Clow
e604469e5c
Patch by GM: apparently '__value' (two underscores) is a special name in Visual Studio, so rename the private method in <regex> with that name. GM's patch used '___value' (three underscores), but I changed that to '__regex_traits_value' because I've been burned in the past by identifiers that appear identical but are not.
...
llvm-svn: 193087
2013-10-21 15:43:25 +00:00
Marshall Clow
520469cfc0
Patch from GM: locale.cpp; make implicit conversions to bool explicit, fix some 'unknown pragma' warnings when compiling under MSVC, and don't use the __sso_allocator under windows, b/c MSVC doesn't support aligned-by value parameters
...
llvm-svn: 193086
2013-10-21 15:07:28 +00:00
Marshall Clow
5b40666c6c
Patch by GM: Making implicit conversion to bool explicit in <ios> and <__locale>
...
llvm-svn: 193085
2013-10-21 14:41:05 +00:00
Marshall Clow
d8cfc7dce9
Patch by GM: Adding MSVC support to __bit_reference
...
llvm-svn: 193084
2013-10-21 14:29:37 +00:00
Richard Smith
1483143e7a
Avoid using the name 'bzero' for an enumerator in global scope. <strings.h> might declare this as a function.
...
llvm-svn: 193066
2013-10-21 04:59:37 +00:00
Howard Hinnant
58af7e177c
r192075 broke the buildbot at
...
http://lab.llvm.org:8013/builders/libcxx_clang-x86_64-darwin11-RA
lit.py: <string>:230: note: inferred use_system_lib as: False
lit.py: <string>:247: fatal: C++ ABI setting None unsupported for tests
cxx_abi is geting set to None, and the lit script errors out shortly after
that. This patch changes the default of cxx_abi from None to 'libcxxabi'.
This is likely not the right way to fix this problem. However it gets the
buildbot running again. Improvements to this fix are welcome.
llvm-svn: 192609
2013-10-14 18:02:02 +00:00
Marshall Clow
9f21325ac7
Patch from GM to make more implicit bools explicit since we can't stop MSVC warning about this in headers and to warn is the MSVC default. No functionality change.
...
llvm-svn: 192548
2013-10-13 01:02:45 +00:00
Marshall Clow
96bb15f464
Updated status of issues and features
...
llvm-svn: 192546
2013-10-12 22:57:58 +00:00
Marshall Clow
c3776b1ce0
LWG Issue 2087: iostream_category() and noexcept
...
llvm-svn: 192545
2013-10-12 22:49:56 +00:00
Marshall Clow
d58daf9433
LWG Issue 2097: packaged_task constructors should be constrained
...
llvm-svn: 192544
2013-10-12 22:49:17 +00:00
Marshall Clow
f28fd284f8
LWG issue 2143: ios_base::xalloc should be thread-safe
...
llvm-svn: 192539
2013-10-12 19:13:52 +00:00
Marshall Clow
8de32cb3dc
Implement national body comment GB9: remove std::gets
...
llvm-svn: 192538
2013-10-12 19:09:47 +00:00
Marshall Clow
0354b92992
patch by Yaron: Uses rand_s() from stdlib.h (when building for Windows)
...
llvm-svn: 192325
2013-10-09 21:49:03 +00:00
Marshall Clow
db78c7049e
Fix LWG Issue 2141: common_type trait produces reference types
...
llvm-svn: 192142
2013-10-07 23:43:33 +00:00
Marshall Clow
5d5e7dbe94
Marked issue 2284 as complete
...
llvm-svn: 192085
2013-10-07 03:26:42 +00:00
Marshall Clow
4f44079a2c
Apparently, I don't know the difference between 'left' and 'right'. Swap parameters named 'lhs' and 'rhs' so that they correctly refer to the 'left hand side' and 'right hand side' of comparisons. No functionality change. Thanks to Arthur O'Dwyer for pointing this out to me.
...
llvm-svn: 192080
2013-10-07 02:37:18 +00:00
Peter Collingbourne
8b9c5d1ac7
Silence the unused function warning in exception.cpp.
...
Rather than try to protect the function behind a precise,
ever-changing #if expression, just inline it into every caller.
llvm-svn: 192077
2013-10-06 22:13:24 +00:00
Peter Collingbourne
3b5d969293
Implement std::exception_ptr under libsupc++.
...
libsupc++ does not implement the dependent EH ABI and the
functionality it uses to implement std::exception_ptr (which it
declares as an alias of std::__exception_ptr::exception_ptr) is not
directly exported to clients. So we have little choice but to hijack
std::__exception_ptr::exception_ptr's (which fortunately has the
same layout as our std::exception_ptr) copy constructor, assignment
operator and destructor (which are part of its stable ABI), and its
rethrow_exception(std::__exception_ptr::exception_ptr) function.
Also, remove some out of date comments.
Differential Revision: http://llvm-reviews.chandlerc.com/D1826
llvm-svn: 192076
2013-10-06 22:13:21 +00:00
Peter Collingbourne
26dd09e57f
Make it possible to link against libstdc++ as well as libsupc++ with CMake.
...
Linking against libstdc++, rather than libsupc++, is probably better
for people who need to link against clients of libstdc++. Because
libsupc++ is provided only as a static library, its globals are not
shared between the static library and the copy linked into libstdc++.
This has been found to cause at least one test failure.
This also removes a number of symbols which were multiply defined
between libstdc++ and libc++, only when linking with libstdc++.
Differential Revision: http://llvm-reviews.chandlerc.com/D1825
llvm-svn: 192075
2013-10-06 22:13:19 +00:00
Peter Collingbourne
926aa5f4f2
Eliminate more symbols multiply defined between libsupc++ and libc++.
...
The remaining multiple definitions were flushed out by attempting to
link libsupc++ and libc++ into the same executable with --whole-archive,
e.g.
clang++ -I../llvm/projects/libcxx/include -nodefaultlibs -Wl,--whole-archive lib/libc++.a /usr/lib/gcc/x86_64-linux-gnu/4.6/libsupc++.a -Wl,--no-whole-archive -lgcc -lgcc_s -lc -lpthread -lrt
(The same technique was used to flush out multiple definitions in
libstdc++.)
Differential Revision: http://llvm-reviews.chandlerc.com/D1824
llvm-svn: 192074
2013-10-06 22:13:16 +00:00
Howard Hinnant
6d48bdd2a8
G M: 1. It changes the temp file handling to use the template and the current directory for windows, matching how it works on other platforms.
...
2. It re-enables the temp file handling for mingw that regressed.
llvm-svn: 192073
2013-10-06 21:14:05 +00:00
Howard Hinnant
04c63bdb36
G M: Rename local variable from __except to avoid MSVC keyword clash.
...
llvm-svn: 192072
2013-10-06 21:00:29 +00:00
Howard Hinnant
32f9a776fb
Use _LIBCPP_NEW_DELETE_VIS instead of LIBCPP_FUNC_VIS in src/new.cpp.
...
llvm-svn: 192071
2013-10-06 20:53:24 +00:00
Howard Hinnant
f66a81ad56
Yaron Keren: Add missing comment.
...
llvm-svn: 192068
2013-10-06 19:48:40 +00:00
Marshall Clow
82f4901d5f
LWG Issue 2247
...
llvm-svn: 192058
2013-10-06 07:19:23 +00:00
Marshall Clow
4fc5ae4c1c
Updated status post-Chicago
...
llvm-svn: 192057
2013-10-06 07:10:55 +00:00
Marshall Clow
d2f095e5ba
Add tests making sure that optional<T>s can be compared at compile time; this functionality was enabled by N3789
...
llvm-svn: 192051
2013-10-05 23:29:16 +00:00
Marshall Clow
dbd2ebb07e
LWG Issue 2247: Implement type trait 'is_null_pointer'
...
llvm-svn: 192049
2013-10-05 21:21:17 +00:00
Marshall Clow
ea7c7cc521
Implement literal suffixes for compled
...
llvm-svn: 192048
2013-10-05 21:19:49 +00:00
Marshall Clow
3ceafc7f01
Mark namespaces for user defined literals as 'inline'
...
llvm-svn: 192047
2013-10-05 21:18:32 +00:00
Marshall Clow
de9320aa2b
Implement LWG issue 2275 'forward_as_tuple should be constexpr'
...
llvm-svn: 192038
2013-10-05 18:46:37 +00:00
Howard Hinnant
68a2610520
G M: Remove unneeded warnings in buildit that are hindering porting.
...
llvm-svn: 192012
2013-10-05 00:13:31 +00:00
Howard Hinnant
4e07b5b955
G M: Attached is a patch for libcxx's cmake file.
...
I've changed it so we don't set highest level warnings (all) for MSVC when building projects using cmake and instead leave the default. That's /W4 on my machine and seems to be ok.
With all warnings on for msvc, we see literally thousands of warnings. 99.99% aren't relevant and just obscure the ones that are.
I think the user can still override things if they want something different from the command line when using cmake.
llvm-svn: 192010
2013-10-05 00:07:35 +00:00
Howard Hinnant
a942f2ffd7
G M: The attached patch is for libcxx's new.cpp and __config files. The patch's intent is to make new.cpp compile using MS's cl.exe compiler without changing the meaning of anything for any other compiler.
...
The issue this patch seeks to address is that MS's compiler (cl.exe) doesn't support the __attribute__((__weak__)) or __atribute__((__visibility__("default")) syntax; so a solution must be found where cl.exe doesn't see this syntax.
This patch seeks to solve this problem by changing code patterned like this:
__attribute__((__weak__, __visibility__("default")))
void* operator new(size_t size, const std::nothrow_t&) _NOEXCEPT { /*snip*/; return p; }
to code like this:
_LIBCPP_WEAK
void* operator new(size_t size, const std::nothrow_t&) _NOEXCEPT { return p; }
Howard: Thanks for all the comments regarding the default visibility
tag on the definition. I agree it isn't needed, and that there are lots
of other places where it is missing. That being said, I'm not wanting
to rock the boat on that issue right now. So I've added it back to the
definition via _LIBCPP_FUNC_VIS. A later pass dedicated just to this
issue can bring things in to a consistent state one way or the other.
Note that we do not want to have the exact same attributes on the
declaration and defintion in this case. The declaration should not be
marked weak, whereas the definition should (which is what G M's patch
did). I've fully tested on OS X to ensure that the resultant attribute
syntax actually works.
llvm-svn: 192007
2013-10-04 23:56:37 +00:00
Howard Hinnant
79710108a4
G M: A small patch to fix a couple of warnings in stdexcept.cpp for cl.exe which does not support #pragma visibility.
...
llvm-svn: 191988
2013-10-04 22:12:59 +00:00
Howard Hinnant
3af48ef76e
G M: Changes all references to "x inline" to "inline x" where x = _libcpp_always_inline or _libcpp_inline_visibility macros.
...
The patch touches these files:
locale
array
deque
new
string
utility
vector
__bit_reference
__split_buffer
locale_win32.h
There is no intended functionality change and it is expected that reversing the position of the inline keyword with regard to the other keywords does not change the meaning of anything, least not for apple/Linux etc.
It is intended to make libcxx more consistent with itself and to prevent the 1000 or so
"inline.cpp(3) : warning C4141: 'inline' : used more than once" warnings that MS's cl.exe compiler emits without this patch, i.e. if inline is not the first keyword before a function name etc.
Prefer "inline [other inline related keyword]" over "[other related keyword] inline".
After this patch, libcxx should be consistent to this pattern.
llvm-svn: 191987
2013-10-04 22:09:00 +00:00
Howard Hinnant
f7a8c4f347
G M: Fix libcxx's detection of rtti disablement for g++.exe and cl.exe. When RTTI is NOT enabled, _LIBCPP_NO_RTTI is defined.
...
llvm-svn: 191981
2013-10-04 21:24:21 +00:00
Howard Hinnant
80b84d4c26
G M: Provides the _LIBCPP_WARNING macro, to be used for MSVC only, since that compiler doesn't support #warning.
...
llvm-svn: 191980
2013-10-04 21:14:44 +00:00
Peter Collingbourne
db21c7bbb0
libc++abi no longer has a cxa_demangle.h header.
...
llvm-svn: 191935
2013-10-03 22:58:36 +00:00
Peter Collingbourne
3a572699e4
Re-add bad_cast and bad_typeid default ctor definitions under libsupc++.
...
libsupc++ declares these constructors inline, so we won't necessarily
get a definition for them in the library.
llvm-svn: 191931
2013-10-03 22:04:10 +00:00
Peter Collingbourne
4806fcd697
Make it possible to run the test suite when built as part of LLVM.
...
llvm-svn: 191930
2013-10-03 21:58:25 +00:00
Alexey Samsonov
eb38496950
Explicitly specify -Wno-error if LIBCXX_ENABLE_WERROR is false.
...
libcxx doesn't build with -Werror because of #warnings in its source
code. But when libcxx is built as an external LLVM project, it inherits
LLVM build flags, breaking the build if LLVM_ENABLE_WERROR is enabled.
llvm-svn: 191814
2013-10-02 07:44:19 +00:00
Marshall Clow
ad864049d6
Remove non-printable chars that snuck in back in July; thanks to Yaron Keren for the catch
...
llvm-svn: 191756
2013-10-01 13:28:20 +00:00
Marshall Clow
45b983c4d0
Part 8 of LWG Issue 2210' unordered_set and unordered multiset; this got missed when I went on vacation
...
llvm-svn: 191705
2013-09-30 21:33:51 +00:00
Howard Hinnant
9fd9f84f48
SCARY/N2913 iterator support between the multi and non-multi versions of the associative and unordered containers. I beleive lack of support for this was accidentally recently introduced (by me) and this is fixing a regression. This time tests are put in to prevent such a regression in the future.
...
llvm-svn: 191692
2013-09-30 19:08:22 +00:00
Alexey Samsonov
1859544071
[CMake] Put libcxx-specific module directories to the front of CMAKE_MODULE_PATH.
...
Otherwise if libcxx is built as an LLVM external project (after r191624),
"include(config-ix)" will include config-ix.cmake from LLVM, not from libcxx,
which will result in misconfigured build tree.
llvm-svn: 191657
2013-09-30 09:10:01 +00:00
Marshall Clow
3d5134dd52
Implement n3789; constexpr support in named function objects
...
llvm-svn: 191626
2013-09-28 19:06:12 +00:00
Marshall Clow
8392ab209e
Add a set of macros for using the new '[[[deprecated]]' attribute. No code changes (yet)
...
llvm-svn: 191625
2013-09-28 18:35:31 +00:00
Marshall Clow
ba132bb198
Fixed bad link for n3789; thanks to Chip Davis for the catch
...
llvm-svn: 191598
2013-09-28 01:52:18 +00:00
Marshall Clow
66a49bd240
Updated my role
...
llvm-svn: 191596
2013-09-28 01:25:55 +00:00
Marshall Clow
2cf77525be
Missed a change that didn't have an issue number 'GB 9'
...
llvm-svn: 191575
2013-09-27 22:21:17 +00:00
Marshall Clow
ff1b7ef31b
Updated table with results from Chicago
...
llvm-svn: 191573
2013-09-27 22:16:32 +00:00
Chandler Carruth
0e99d99f77
Make the guard for external ABI libraries include the guard for
...
libsupc++ in typeinfo.cpp, bringing it into agreement with
exception.cpp. This fixes link errors due to duplicate symbols from
this translation unit.
llvm-svn: 191397
2013-09-25 20:01:44 +00:00
Howard Hinnant
12bfc4fef1
Peter Collingbourne: Fix warnings when compiling with -DNDEBUG.
...
llvm-svn: 191148
2013-09-21 21:26:37 +00:00
Howard Hinnant
7a828034c6
Peter Collingbourne: If a pointer is passed as the third argument of the (iterator,
...
iterator, allocator) constructor with the intention of it being
implicitly converted to the allocator type, it is possible for overload
resolution to favour the (iterator, iterator, enable_if) constructor.
Eliminate this possibility by moving the enable_if to one of the
existing arguments and removing the third argument.
llvm-svn: 191145
2013-09-21 21:13:54 +00:00
Howard Hinnant
ff29d538ea
Apply LWG 2048. It is amazing to me that this actually works, but the existing tests confirm that it does. c++1y status page now showing libc++ is complete for c++1y modulo dynarray issues.
...
llvm-svn: 191142
2013-09-21 19:25:37 +00:00
Howard Hinnant
f13cf89df2
Apply LWG 2021. This is only a documentation change. Also bringing c++1y status page up to date.
...
llvm-svn: 191141
2013-09-21 18:17:23 +00:00
Howard Hinnant
b76e6a95a9
Apply LWG 2017. This is a only a documentation change.
...
llvm-svn: 191140
2013-09-21 17:58:58 +00:00
Howard Hinnant
ead6f1699d
N3659: Shared locking in C++ Revision 2, c++1y only
...
llvm-svn: 191127
2013-09-21 01:49:28 +00:00
Howard Hinnant
b1c82cd090
David Chisnall: macro protect 'test' in __has_pointer_type_imp.
...
llvm-svn: 191126
2013-09-21 01:45:05 +00:00
Joerg Sonnenberger
8092c957d2
Fix typo.
...
llvm-svn: 190857
2013-09-17 08:46:53 +00:00
Howard Hinnant
5f878d4bd2
G M: Restore the ability for libcxx to compile again on mingw 64.
...
llvm-svn: 190837
2013-09-17 01:34:47 +00:00
Howard Hinnant
3b2d7ee18c
Marshall Clow: LWG Issue 2056: future_errc enums start with value 0 (invalid value for broken_promise).
...
llvm-svn: 190756
2013-09-14 18:20:10 +00:00
Marshall Clow
a369cb6280
LWG Issue 2210 (Part #7 ): vector and vector<bool>
...
llvm-svn: 190736
2013-09-14 00:47:59 +00:00
Howard Hinnant
84f996fb2e
G M: Make shared_ptr a little more gentle for some compilers. No impact on clang.
...
llvm-svn: 190732
2013-09-13 23:56:00 +00:00
Howard Hinnant
f35fc7ad74
G M: Make valarray a little more forgiving to compilers not quite so gifted. This has no impact on clang.
...
llvm-svn: 190731
2013-09-13 23:27:42 +00:00
Marshall Clow
9a08837ba3
Fix link to dynarray issue
...
llvm-svn: 190707
2013-09-13 17:32:32 +00:00
Marshall Clow
63d233b6ce
Update status for <dynarray>
...
llvm-svn: 190700
2013-09-13 15:37:11 +00:00
Marshall Clow
ef6f1151b0
Initial implementation of <dynarray>. No allocator support pending resolution of LWG #2235 ; no stack allocation pending compiler support
...
llvm-svn: 190697
2013-09-13 15:22:55 +00:00
Marshall Clow
b387ea89a6
Test for 'bad_array_length'; got left out of initial commit
...
llvm-svn: 190614
2013-09-12 17:01:38 +00:00
Marshall Clow
3cd37e6456
LWG Issue 2210 (Part #6 ): unordered_map and unordered_multimap
...
llvm-svn: 190576
2013-09-12 03:00:31 +00:00
Marshall Clow
50c003b577
Implement uses-allocator construction
...
llvm-svn: 190571
2013-09-12 02:11:16 +00:00
Howard Hinnant
872ac4b5f0
A collection of minor type-o fixes. The first two aren't testable, but all tests pass with them. I stumbled across them while experimenting with a std::move that checks its argument for non-const. The third corrects a test that is currently failing.
...
llvm-svn: 190563
2013-09-12 00:10:44 +00:00
Marshall Clow
6e8ebb2ce9
Adding bad_array_length to libc++
...
llvm-svn: 190478
2013-09-11 01:38:42 +00:00
Marshall Clow
fbc317d480
LWG Issue #2210 Part 5 - map/multimap; no, really - the last one was set/multiset. THIS is map/multimap
...
llvm-svn: 190474
2013-09-11 01:15:47 +00:00
Marshall Clow
0a55d17bcd
LWG Issue #2210 Part 4 - map/multimap
...
llvm-svn: 190454
2013-09-11 00:06:45 +00:00
Marshall Clow
f1b6d1b538
Update synopsis for list/forward_list/deque to match the allocator style of existing comment. No code change
...
llvm-svn: 190320
2013-09-09 18:19:45 +00:00
Marshall Clow
cdd01917ff
Remove a tab that snuck in
...
llvm-svn: 190283
2013-09-08 21:13:57 +00:00
Howard Hinnant
224ccb38d3
Fix minor type-o in tests.
...
llvm-svn: 190280
2013-09-08 19:28:51 +00:00
Marshall Clow
fb8297668f
LWG Issue 2210 (Part #2 & #3 ): list and forward_list
...
llvm-svn: 190279
2013-09-08 19:11:51 +00:00
Marshall Clow
630c5e535c
LWG Issue 2210 (Part #1 ): deque
...
llvm-svn: 190251
2013-09-07 16:16:19 +00:00
Marshall Clow
ef44edfde4
N3545: Quoted strings
...
llvm-svn: 190032
2013-09-05 04:48:45 +00:00
Marshall Clow
edc4ee3d15
Mark issues 2103, 2005, 2196 and 2203 as complete. No code changes.
...
llvm-svn: 190012
2013-09-04 23:48:25 +00:00
Howard Hinnant
6272680119
Evgeniy Stepanov: Add noexcept to ~bad_optional_access() to silence warning during build.
...
llvm-svn: 189949
2013-09-04 15:21:08 +00:00
Marshall Clow
8bd0ac1135
Updated status for LSG issues 2122, 2169, 2177, 2140 and 2086.
...
llvm-svn: 189900
2013-09-04 01:06:59 +00:00
Marshall Clow
3e2319e47a
Update status of issues 2045, 2050, 2080, 2081, 2083, 2130, 2137 and 2177.
...
llvm-svn: 189894
2013-09-04 00:18:19 +00:00
Marshall Clow
5155a569d1
LWG Issue 2148: Hashing Enums
...
llvm-svn: 189831
2013-09-03 17:55:32 +00:00
Marshall Clow
710a902cac
Updated the synopsis for weak_ptr<T>::owner_before to match the code. No code changes.
...
llvm-svn: 189812
2013-09-03 14:37:50 +00:00
Marshall Clow
3e6a3d0c29
Fix a typo in the status for <optional>
...
llvm-svn: 189809
2013-09-03 14:16:49 +00:00
Marshall Clow
cb2e838ed0
Eradicate tabs
...
llvm-svn: 189808
2013-09-03 14:14:27 +00:00
Howard Hinnant
e7d746d8b9
Implement N3672, optional<T>.
...
llvm-svn: 189772
2013-09-02 20:30:37 +00:00
Michael Gottesman
b422ecc7de
[cmake] Provide an option to not install the support headers so that the cmake build can match the make build if requested.
...
llvm-svn: 189739
2013-09-02 07:28:05 +00:00
Michael Gottesman
05c4b550c9
[cmake] Make libcxx standalone compile on Mac OS X.
...
llvm-svn: 189738
2013-09-02 07:28:03 +00:00
Howard Hinnant
dda6f242fb
Forgot to svn add the test for r189722.
...
llvm-svn: 189723
2013-08-31 17:03:02 +00:00
Howard Hinnant
69bc206547
SFINAE out duration converting constructor if the constructor would otherwise cause a ratio compile-time overflow. This fixes LWG 2094.
...
llvm-svn: 189722
2013-08-31 16:51:56 +00:00
Daniel Dunbar
b6b3e50bf3
[tests] Change with_system_lib feature to match what XFAIL lines expect.
...
- The lit builtin XFAIL handling is more restrictive than what we were
previously using, and for now I'd rather keep the lit one restrictive.
llvm-svn: 189692
2013-08-30 19:52:12 +00:00
Howard Hinnant
525dc284b4
is_destructible for function types was mistakenly returning true instead of false. This is true in both C++11 and C++1y, but has been clarified by the post C++11 LWG issue 2049.
...
llvm-svn: 189687
2013-08-30 19:12:42 +00:00
Howard Hinnant
d0a4d73623
Xing Xue: Fix type-o. Thanks to C. Bergström for spotting it.
...
llvm-svn: 189674
2013-08-30 14:42:39 +00:00
Marshall Clow
1e548c72e7
LWG Issue 2128: Implement global cbegin/rbegin/cend/rbegin
...
llvm-svn: 189634
2013-08-30 01:17:07 +00:00
Howard Hinnant
b81766ca23
Glen: Remove unneeded _LIBCPP_ALWAYS_INLINE.
...
llvm-svn: 189626
2013-08-29 23:50:48 +00:00
Howard Hinnant
9762413621
Xing Xue: Some minor changes for IBM XLC++/AIX.
...
llvm-svn: 189623
2013-08-29 23:37:50 +00:00
Howard Hinnant
393068bb04
Turn off extern templates for most uses. It is causing more problems than it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027 . However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire.
...
llvm-svn: 189610
2013-08-29 20:56:53 +00:00
Marshall Clow
eabb87c438
Typo: I wrote "2058" into the status column for issue 2058 instead of "Complete"
...
llvm-svn: 189602
2013-08-29 19:03:01 +00:00
Marshall Clow
08bdca2fc2
Mark LWG issues 2109, 222, 2058, 2091 and 2092 as complete. No changes to libc++ code.
...
llvm-svn: 189601
2013-08-29 18:55:55 +00:00
Marshall Clow
24cca08054
Mark issues 2147, 2149, 2163, 2172, 2098 and 2177 as complete. No code changes to libc++
...
llvm-svn: 189586
2013-08-29 15:35:54 +00:00
Marshall Clow
90a4dad9da
Marked #2163 as complete in previous commit instead of #2162 . Corrected.
...
llvm-svn: 189401
2013-08-27 20:25:06 +00:00
Marshall Clow
06fbed03fc
LWG Issue 2162: mark allocator_traits::maxsize as noexcept
...
llvm-svn: 189399
2013-08-27 20:22:15 +00:00
Marshall Clow
7988106b21
LWG issues 2174/5/6 - mark wstring_convert::converted as noexcept, and make (some of) the constructors for wstring_convert and wbuffer_convert as explicit. Add configuration macro _LIBCPP_EXPLICIT_AFTER_CXX11
...
llvm-svn: 189398
2013-08-27 20:18:59 +00:00
Marshall Clow
bf9ad4a1f8
Mark LWG issues 2190, 2200, and 2211 as done. No changes needed to libc++.
...
llvm-svn: 189359
2013-08-27 15:47:05 +00:00
Marshall Clow
5320c2b563
Update synopsis in <locale> to match LWG Issue 2229. No code change
...
llvm-svn: 189352
2013-08-27 14:22:13 +00:00
Marshall Clow
54c83368a5
Implement LWG issue 2061
...
llvm-svn: 189345
2013-08-27 13:03:03 +00:00
Howard Hinnant
0ed0d69c9c
G M: Improvements to Windows support.
...
llvm-svn: 189273
2013-08-26 20:18:01 +00:00
Howard Hinnant
93288117a5
Apply constexpr to initializer_list for c++1y.
...
llvm-svn: 189271
2013-08-26 20:11:32 +00:00
Marshall Clow
541be9c72c
Mark LWG issues 2011, 2015, 2033, 2065, 2071, 2102, 2235 as complete b/c libc++ already fixed them.
...
llvm-svn: 189232
2013-08-26 17:31:31 +00:00
Howard Hinnant
c9d3ae43d2
G M: Improve support for compilers not supporting defaulted functions.
...
llvm-svn: 189184
2013-08-24 21:31:37 +00:00
Howard Hinnant
145afa17ca
Rename _LIBCPP_DEBUG2 to _LIBCPP_DEBUG.
...
llvm-svn: 189140
2013-08-23 20:10:18 +00:00
Howard Hinnant
2f57df2aa9
Remove _LIBCPP_DEBUG. This was my first attempt at debug mode for libc++, and is now obsoleted by _LIBCPP_DEBUG2 (which isn't finished).
...
llvm-svn: 189135
2013-08-23 19:03:36 +00:00
Howard Hinnant
fc88dbd298
Debug mode for string. This commit also marks the first time libc++ debug-mode has found a bug (found one in regex). Had to play with extern templates a bit to get this to work since string is heavily used within libc++.dylib.
...
llvm-svn: 189114
2013-08-23 17:37:05 +00:00
Howard Hinnant
104024cb59
Glen: replace obsolete _LIBCPP_CANTTHROW with _NOEXCEPT.
...
llvm-svn: 189046
2013-08-22 19:39:03 +00:00
Marshall Clow
7b5566c5f5
Mark LWG issues #2083 , 2099 and 2105 as complete. No functionality change.
...
llvm-svn: 189044
2013-08-22 18:53:17 +00:00
Howard Hinnant
427ae44637
XFAIL a few tests on darwin12
...
llvm-svn: 189043
2013-08-22 18:47:39 +00:00
Howard Hinnant
179b1f8cf2
Zhihao Yuan noted that there were a few unneeded statements. Eliminated the unnecessary ones, and commented the ones that are there for non-obvious reasons such as to help things limp along in C++03 language mode.
...
llvm-svn: 189039
2013-08-22 18:29:50 +00:00
Howard Hinnant
9ff3203fcc
Zhihao Yuan noted that a move assignment operation was missing from std::adjacent_difference. Fixed.
...
llvm-svn: 189036
2013-08-22 18:02:34 +00:00
Howard Hinnant
d8bf850359
David Blaikie suggested this test for detecting constexpr on the error_category default constructor. Additionally I decided to make this constructor trivial as well, as I could not come up with a rationale for not doing so. Fully tested with both current Apple clang and tip-of-trunk clang.
...
llvm-svn: 189034
2013-08-22 17:41:48 +00:00
Howard Hinnant
56c917c57f
XFAIL 3 tests on darwin 11-12. The tests have recently been modified, are correct, and pass with an updated libc++.dylib
...
llvm-svn: 188964
2013-08-22 00:04:22 +00:00
Daniel Dunbar
019c5905df
[tests] Update to use lit's now-integrated XFAIL handling.
...
llvm-svn: 188960
2013-08-21 23:06:32 +00:00
Marshall Clow
a86d516213
LWG 2145 - mark constructor for std::error_category as inline and constexpr. Leave the (existing, out-of-line, non-constexpr) in the dylib for compatibility with existing programs)
...
llvm-svn: 188858
2013-08-21 02:57:19 +00:00
Marshall Clow
890d1ee469
Updated status of issues #2093 , 2144, and 2185
...
llvm-svn: 188813
2013-08-20 16:59:06 +00:00
Marshall Clow
8a79e1d053
Updated status and description of issues 2064, 2069 and 2096.
...
llvm-svn: 188811
2013-08-20 16:24:55 +00:00
Marshall Clow
a0393ce271
Updated status of issues #2028 , 2047, and 2053.
...
llvm-svn: 188810
2013-08-20 16:18:29 +00:00
Marshall Clow
e06e3ac7d5
Updated status of issues #1214 , 2207 and 2209. They were already implemented, so no functionality change was needed.
...
llvm-svn: 188803
2013-08-20 14:21:16 +00:00
Howard Hinnant
9309322454
G M: minor fix to silence warning in cmake version 2.8.11.20130809-gba97e.
...
llvm-svn: 188712
2013-08-19 21:42:07 +00:00
Howard Hinnant
113f13d2a5
Relax complete-type check for functions and function pointers to allow void return type. This bug was exposed by Eli Friedman's commit to clang r188324. Anywhere this version of clang ships, this libc++ fix must follow. However this fix is compatible with previous clangs, and so this libc++ doesn't need to wait for this clang.
...
llvm-svn: 188413
2013-08-14 21:28:31 +00:00
Howard Hinnant
5d1a701d6d
Xing Xue: port to IBM XLC++/AIX.
...
llvm-svn: 188396
2013-08-14 18:00:20 +00:00
Marshall Clow
a8c7c154bb
Fix signed/unsigned warnings when building libc++ in C++14 mode
...
llvm-svn: 188395
2013-08-14 17:53:31 +00:00
Howard Hinnant
009aff5e96
Added some missing issues to the c++1y status page, and put in hyperlinks for the papers.
...
llvm-svn: 188387
2013-08-14 17:26:18 +00:00
Marshall Clow
a6821921a7
remove CWG papers from list; add link to clang status page
...
llvm-svn: 188383
2013-08-14 16:30:37 +00:00
Marshall Clow
03bcdf27c6
Added CWG and SG1 papers to libc++ status page
...
llvm-svn: 188381
2013-08-14 16:12:34 +00:00
Marshall Clow
444d3300f2
Mark LWG Issue #2110 and #2113 as completed - they were already done
...
llvm-svn: 188378
2013-08-14 15:28:40 +00:00
Marshall Clow
ede1aa2d31
Add a deleted assignment operator for basic_ostream; LWG Issue #2067
...
llvm-svn: 188375
2013-08-14 15:15:28 +00:00
Marshall Clow
2d6e2834a8
Implement LWG Issue #2187 (emplace_back and emplace for vector<bool>)
...
llvm-svn: 188333
2013-08-13 23:54:12 +00:00
Marshall Clow
e4fa0dee48
Eradicate tabs
...
llvm-svn: 188322
2013-08-13 22:22:40 +00:00
Marshall Clow
e06dfe2ccd
Update for N3657 and issue 2010
...
llvm-svn: 188321
2013-08-13 22:20:01 +00:00
Marshall Clow
2585835c3b
Second half (map/multimap) of N3657
...
llvm-svn: 188320
2013-08-13 22:18:47 +00:00
Marshall Clow
72f7821cc6
Updated issues 2039, 2044, 2197, 2225, and 2231
...
llvm-svn: 188294
2013-08-13 17:02:42 +00:00
Marshall Clow
bd9d059e6c
Updated Issue 2187
...
llvm-svn: 188286
2013-08-13 16:23:22 +00:00
Marshall Clow
e714b879df
Removed 'Ready' issues from Bristol
...
llvm-svn: 188284
2013-08-13 16:07:51 +00:00
Marshall Clow
fb9945594f
Updated issues 2009 and 2074
...
llvm-svn: 188283
2013-08-13 16:01:28 +00:00
Marshall Clow
914993df0b
Added more tests for numeric conversion error handing; Refs LWG issue 2009
...
llvm-svn: 188282
2013-08-13 15:52:51 +00:00
Marshall Clow
47e432c6df
Fix template formatting. No, really
...
llvm-svn: 188277
2013-08-13 15:13:42 +00:00
Marshall Clow
6efb2bf585
escape some template specs
...
llvm-svn: 188276
2013-08-13 15:07:02 +00:00
Marshall Clow
873e890f44
Fix case mismatch
...
llvm-svn: 188275
2013-08-13 14:59:44 +00:00
Marshall Clow
f77718ad1d
Create a C++14 status page
...
llvm-svn: 188273
2013-08-13 14:58:39 +00:00
Marshall Clow
75f9aa9993
More support for N3657; tests for is_transparent
...
llvm-svn: 188242
2013-08-13 01:12:41 +00:00
Marshall Clow
25d3402c6a
First half of support for N3657; heterogenous lookups for set/multiset
...
llvm-svn: 188241
2013-08-13 01:11:06 +00:00
Howard Hinnant
f0544c2086
Nico Rieck: this patch series fixes visibility issues on Windows as explained in < http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html >.
...
llvm-svn: 188192
2013-08-12 18:38:34 +00:00
Howard Hinnant
6afbc442d6
Add a check for arrays of unknown bounds to is_destructible. This fixes http://llvm.org/bugs/show_bug.cgi?id=16839
...
llvm-svn: 188080
2013-08-09 16:53:45 +00:00
Howard Hinnant
d7cda0680a
Partial implementation of N3665. This paper was not voted into the C++1y draft. However I was looking at it and with some experimentation realized that I could partially implement it, and at the same time offer a performance optimization to cout. I simply added an xsputn override to the cout filebuf. The override does nothing special at all if there is a non-trivial codecvt installed. However if the codecvt returns true for always_noconv(), then this function can dump an entire string to fwrite, instead of doing it a character at a time under overflow(). This just makes sense. I stopped short of a full implementation of N3665 because in order to do so, xsputn would have to allocate a buffer when always_noconv() returned false, and I don't want to go to that expense.
...
llvm-svn: 188077
2013-08-09 16:25:43 +00:00
Daniel Dunbar
4a38129468
[tests] Update to use lit_config and lit package, as appropriate.
...
llvm-svn: 188073
2013-08-09 14:44:11 +00:00
Marshall Clow
2472b928d2
N3644 tests for map/multimap/set/multiset. Drive-by NOEXCEPT for __tree_const_iterator constructor. Fix comment typos in other tests
...
llvm-svn: 188019
2013-08-08 21:52:50 +00:00
Howard Hinnant
8c9742051d
My previous reorganization of addressof broke -std=c++03. Thanks much to Arnold Schwaighofer for catching this. This patch also catches a few more missing addressof in <future>, thanks go to Zhihao Yuan for catching these.
...
llvm-svn: 187997
2013-08-08 18:38:55 +00:00