Age | Commit message (Collapse) | Author | Files | Lines |
|
Fixes DR20484
Summary: This patch moves the SFINAE for __is_destructor_welformed out of the function template parameters. type_traits must compile in c++03 mode since it is included in c++03 headers.
Test Plan: No tests have been added.
Reviewers: danalbert, mclow.lists
Reviewed By: danalbert
Subscribers: K-ballo, cfe-commits
Differential Revision: http://reviews.llvm.org/D4735
llvm-svn: 214427
|
|
llvm-svn: 213547
|
|
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
|
|
allocator. Thanks to Thomas Koeppe for the report
llvm-svn: 213269
|
|
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
|
|
llvm-svn: 213225
|
|
llvm-svn: 213223
|
|
llvm-svn: 213222
|
|
llvm-svn: 213163
|
|
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
|
|
Albert Wong for the patch.
llvm-svn: 212727
|
|
llvm-svn: 212724
|
|
llvm-svn: 212723
|
|
llvm-svn: 212651
|
|
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
|
|
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
|
|
Also, make the tests pass under c++03
llvm-svn: 212185
|
|
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
|
|
to EricWF for the bug report and the fix.
llvm-svn: 212046
|
|
llvm-svn: 212017
|
|
intrinsics in 4.7 and later. No functionality change when using clang.
llvm-svn: 211755
|
|
Patch by Ryuta Suzuki
llvm-svn: 211629
|
|
bug #20092. Thanks to Agustín Bergé for the bug report and the fix.
llvm-svn: 211563
|
|
No functionality change.
llvm-svn: 211191
|
|
This reverts commit 0bd40d6c3da6719fecf77038673d453ff1eab25b.
llvm-svn: 210857
|
|
in C++11 and 03, with reduced functionality (mostly in the area of constexpr)
llvm-svn: 210659
|
|
http://llvm.org/bugs/show_bug.cgi?id=18681
Patch by Ryuta Suzuki <oroppas gmail com>
llvm-svn: 210577
|
|
return void in C++11
llvm-svn: 210562
|
|
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
|
|
bits out on c++03, since it doesn't support u"" and U "" style strings.
llvm-svn: 210560
|
|
llvm-svn: 210558
|
|
llvm-svn: 210500
|
|
are constexpr, and a comparison predicate which counts how many times it's been called.
llvm-svn: 210381
|
|
llvm-svn: 210380
|
|
allows allocations and deallocations to be optimized out.
llvm-svn: 210211
|
|
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
|
|
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
|
|
libc++ currently relies on undefined initialization order of global
initializers when using gcc:
1. __start_std_streams in iostream.cpp calls locale::id::_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
|
|
llvm-svn: 210162
|
|
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
|
|
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
|
|
llvm-svn: 210056
|
|
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
|
|
between <string> and <string_view>. No functionality change
llvm-svn: 210002
|
|
The XFAILs in r208840 were too general. They were meant to only apply
to testing when use_system_lib was set.
llvm-svn: 209972
|
|
(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
|
|
llvm-svn: 209819
|
|
[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
|
|
libc++) to stop working. And tests
llvm-svn: 209785
|
|
Eric for the bug report
llvm-svn: 209520
|