aboutsummaryrefslogtreecommitdiff
path: root/libcxx
AgeCommit message (Collapse)AuthorFilesLines
2014-07-31[libcxx] Remove use of default function template parameters in type traits. ↵Eric Fiselier1-3/+8
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
2014-07-21make the same change as in 213546 for vector<bool>Marshall Clow1-1/+1
llvm-svn: 213547
2014-07-21In response to bug #20362, change the order of operations in vector move ↵Marshall Clow1-1/+1
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-17Fix bug #20335 - memory leak when move-constructing a string with unequal ↵Marshall Clow2-14/+26
allocator. Thanks to Thomas Koeppe for the report llvm-svn: 213269
2014-07-17[libcxx] Add <experimental/utility> header for LFTS. Eric Fiselier6-1/+123
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-17Change _LIBCXX_CONSTEXPR_AFTER_CXX11 to check for c++14 constexpr rulesEric Fiselier1-2/+14
llvm-svn: 213225
2014-07-17Test commit: Reverting whitespace changesEric Fiselier1-1/+0
llvm-svn: 213223
2014-07-17Test commit: whitespace changeEric Fiselier1-0/+1
llvm-svn: 213222
2014-07-16Correctly implement LWG 2049; std::is_destructible.Marshall Clow5-36/+112
llvm-svn: 213163
2014-07-16Change Windows decoration on some base classesSaleem Abdulrasool1-2/+2
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-10Support the built-in type-trait support in gcc 4.7 and later. Thanks to ↵Marshall Clow1-46/+42
Albert Wong for the patch. llvm-svn: 212727
2014-07-10Add support for BIONIC C library (Android). Patch from Dan AlbertMarshall Clow5-12/+217
llvm-svn: 212724
2014-07-10Fix warning in test - missing exception specifier for overload of operator newMarshall Clow1-1/+1
llvm-svn: 212723
2014-07-09Add a reset method to the counting predicates in the test suiteMarshall Clow1-1/+3
llvm-svn: 212651
2014-07-08string_view enhancements. Move to the correct namespace. Better constexpr ↵Marshall Clow3-12/+37
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-08Fix some failing tests for the standard containers. The tests were failing ↵Marshall Clow12-111/+135
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-02Minor cleanup for string_view; mostly from suggestions by Richard Smith. ↵Marshall Clow9-45/+46
Also, make the tests pass under c++03 llvm-svn: 212185
2014-06-30Fix libc++ bug #20039: 'Constructing std::function from empty compatible ↵Marshall Clow4-5/+46
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-30Fix a typo in the noexcept calculation for __compressed_pair::swap. Thanks ↵Marshall Clow1-6/+6
to EricWF for the bug report and the fix. llvm-svn: 212046
2014-06-30Add checking for the complexity guarantees in the standardMarshall Clow1-0/+16
llvm-svn: 212017
2014-06-26Patch from Albert J. Wong to make type_traits take advantage of gcc ↵Marshall Clow2-7/+16
intrinsics in 4.7 and later. No functionality change when using clang. llvm-svn: 211755
2014-06-24eliminate install of duplicate headers (take 2)David Fang3-24/+17
Patch by Ryuta Suzuki llvm-svn: 211629
2014-06-24Some calls to get<>() were qualified. Some were not. Qualify them all. Fixes ↵Marshall Clow5-25/+25
bug #20092. Thanks to Agustín Bergé for the bug report and the fix. llvm-svn: 211563
2014-06-18Formatting improvements in the <string_view> synopsis suggested by RSmith. ↵Marshall Clow1-112/+111
No functionality change. llvm-svn: 211191
2014-06-12Revert "fixes duplicate header installation"David Fang1-1/+5
This reverts commit 0bd40d6c3da6719fecf77038673d453ff1eab25b. llvm-svn: 210857
2014-06-11Implement string_view from the library fundamentals TS (n4023). Also works ↵Marshall Clow80-0/+16908
in C++11 and 03, with reduced functionality (mostly in the area of constexpr) llvm-svn: 210659
2014-06-10fixes duplicate header installationDavid Fang1-5/+1
http://llvm.org/bugs/show_bug.cgi?id=18681 Patch by Ryuta Suzuki <oroppas gmail com> llvm-svn: 210577
2014-06-10Mark assign to be constepr only in c++14; can't have constexpr fns that ↵Marshall Clow1-1/+1
return void in C++11 llvm-svn: 210562
2014-06-10Make the helper routines in string really be constexpr. This required a bit ↵Marshall Clow2-48/+60
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-10A bunch of the char.traits tests were using unicode literals. #ifdef those ↵Marshall Clow18-0/+36
bits out on c++03, since it doesn't support u"" and U "" style strings. llvm-svn: 210560
2014-06-10Update Arcanist config to point to reviews.llvm.orgDavid Blaikie1-1/+1
llvm-svn: 210558
2014-06-09Fixed damaged row in issues table; thanks to STL for the catchMarshall Clow1-1/+1
llvm-svn: 210500
2014-06-06Testing infastructure: A template for char_traits where all the functions ↵Marshall Clow2-0/+185
are constexpr, and a comparison predicate which counts how many times it's been called. llvm-svn: 210381
2014-06-06Since we now have a value for __cplusplus for c++14, teach libc++ about itMarshall Clow1-1/+3
llvm-svn: 210380
2014-06-04Use __builtin_operator_new/__builtin_operator_delete when available. ThisRichard Smith6-26/+55
allows allocations and deallocations to be optimized out. llvm-svn: 210211
2014-06-04Handle partial nanosleeps in this_thread::sleep_forDavid Majnemer2-1/+23
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-04Make meta.trans.other/aligned_storage.pass.cpp pass on arm.Nico Weber1-3/+11
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-04Make locales (and transitively, std::endl) work reliably with gcc.Nico Weber2-2/+9
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
2014-06-04Add a note about debug mode being non-functionalMarshall Clow1-0/+6
llvm-svn: 210162
2014-06-03[libc++] Don't return uninitialized data from random_device::operator()David Majnemer2-3/+30
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[libc++] random_device fails if open returns zeroDavid Majnemer2-1/+12
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-02First cut at a post c++14 status pageMarshall Clow2-0/+91
llvm-svn: 210056
2014-06-02Remove unused code in a libc++ test.Nico Weber1-17/+0
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-02Preparation for <string_view>. More helper functions that can be shared ↵Marshall Clow1-62/+109
between <string> and <string_view>. No functionality change llvm-svn: 210002
2014-05-31Fix XFAIL condition from r208840Justin Bogner1-3/+3
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-30Add a _LIBCPP_CONSTEXPR that was missed in r170026.Nico Weber1-1/+1
(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-29fix typoNico Weber2-2/+2
llvm-svn: 209819
2014-05-29Linux: Correctly identify valid error codesDavid Majnemer3-3/+14
[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-29Fix a problem exposed by r208825, which caused bind (and other bits of ↵Marshall Clow2-7/+82
libc++) to stop working. And tests llvm-svn: 209785
2014-05-23Fix bug 19840, where some tests were not testing what we wanted. Thanks to ↵Marshall Clow2-12/+12
Eric for the bug report llvm-svn: 209520