summaryrefslogtreecommitdiffstats
path: root/libcxx/include
Commit message (Collapse)AuthorAgeFilesLines
* [libcxx] LWG2485: get() should be overloaded for const tuple&&. Patch from ↵Eric Fiselier2015-12-184-2/+104
| | | | | | | K-Ballo. Review: http://reviews.llvm.org/D14839 llvm-svn: 255941
* Make noexcept specifications on __hash_table definitions match their ↵Eric Fiselier2015-12-161-0/+2
| | | | | | declarations. llvm-svn: 255738
* Workaround nasty GCC bug that caused testsuite to hangEric Fiselier2015-12-161-1/+3
| | | | llvm-svn: 255734
* Remove unused _LIBCPP_HAS_NO_ALWAYS_INLINE_VARIADICS macroEric Fiselier2015-12-151-4/+0
| | | | llvm-svn: 255686
* [libcxx] Enable noexcept for GCC 4.6 and greaterEric Fiselier2015-12-151-19/+15
| | | | | | | | | | | | | | | | Summary: This patch allows GCC 4.6 and above to use `noexcept` as opposed to `throw()`. Is it an ABI safe change to suddenly switch on `noexcept`? I imagine it must be because it's disabled in w/ clang in C++03 but not C++11. Reviewers: danalbert, jroelofs, mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15516 llvm-svn: 255683
* Mark declarations of externally instantiated functions as inline so GCC ↵Eric Fiselier2015-12-151-2/+2
| | | | | | doesn't complain. llvm-svn: 255599
* Fix various GCC mis-configurations for newer versions.Eric Fiselier2015-12-152-1/+9
| | | | | | | | | | | | This patch goes through and enables C++11 and C++14 features for newer GCC's. The main changes are: 1. Turn on variable templates. (Uses __cpp_variable_templates) 2. Assert atomic<Tp> is trivially copyable (Uses _GNUC_VER >= 501). 3. Turn on trailing return support for GCC. (Uses _GNUC_VER >= 404) 4. XFAIL void_t test for GCC 5.1 and 5.2. Fixed in GCC 6. llvm-svn: 255585
* Missed this on the previous (255517) commitMarshall Clow2015-12-141-0/+49
| | | | llvm-svn: 255518
* Fix a corner case that involved calling rethrow_if_nested with a type that ↵Marshall Clow2015-12-142-52/+1
| | | | | | had a deleted operator&. Added a test to catch this as well. Thanks to Ville for the heads-up. llvm-svn: 255517
* Remove redundant _LIBCPP_ALWAYS_INLINE attribute from __convert_to_integral ↵Eric Fiselier2015-12-101-9/+9
| | | | | | overloads llvm-svn: 255185
* Remove visibility attributes from out-of-class method definitions in iostreams.Evgeniy Stepanov2015-12-094-86/+86
| | | | | | | | | | No point in pretending that these methods are hidden - they are actually exported from libc++.so. Extern template declarations make them part of libc++ ABI. This patch does not change libc++.so export list (at least on Linux). llvm-svn: 255177
* Add 3 more missing inline/visibility attributes.Evgeniy Stepanov2015-12-092-0/+3
| | | | | | | | | These are the cases when an out-of-class definition of a method is marked _LIBCPP_INLINE_VISIBILITY, but the in-class declaration is not. This will start failing when (or if) we switch to attribute((internal_linkage)). llvm-svn: 255166
* Use __make_integer_seq builtin for std::make_integer_sequence. Patch by K-ballo.Eric Fiselier2015-12-091-1/+13
| | | | llvm-svn: 255162
* Last bit of P0006; mark it as completeMarshall Clow2015-11-301-0/+8
| | | | llvm-svn: 254290
* Fix bugs in alignment_of_v, etc. Re-enable the newly added testsMarshall Clow2015-11-301-3/+3
| | | | llvm-svn: 254289
* Missing file from last commitMarshall Clow2015-11-301-0/+33
| | | | llvm-svn: 254286
* Implement more of P0006; Type Traits Variable Templates.Marshall Clow2015-11-301-0/+25
| | | | llvm-svn: 254283
* Add static_assert to set/multiset/map/multimap/forward_list/deque that the ↵Marshall Clow2015-11-264-0/+18
| | | | | | allocator's value_type match the container's value_type. vector/unordered/list/string already do this. Add tests for all the containers to verify this. llvm-svn: 254119
* Use libcxx's default rune table with the Musl C library.Vasileios Kalintiris2015-11-242-7/+3
| | | | | | | | | | | | | | | | | Summary: Also, there are no exported character type tables from Musl so we have to Fallback to the standard functions. This reduces the number of libcxx's test-suite failures down to ~130 for MIPS. Most of the remaining failures come from the atomics (due to the lack of 8-byte atomic-ops in MIPS32) and thread tests. Reviewers: mclow.lists, EricWF, dalias, jroelofs Subscribers: tberghammer, danalbert, srhines, cfe-commits Differential Revision: http://reviews.llvm.org/D14926 llvm-svn: 253972
* Fix some mistakes in the <utility> and <tuple> synopses. No functional ↵Marshall Clow2015-11-192-11/+11
| | | | | | change. Thannks to K-ballo for the patch llvm-svn: 253593
* Fix some mistakes in the <array> synopsis. No functional change. Thanks to ↵Marshall Clow2015-11-191-5/+5
| | | | | | K-ballo for the patch llvm-svn: 253592
* Implement P0007: Constant View: A proposal for a std::as_const helper ↵Marshall Clow2015-11-171-0/+8
| | | | | | function template. llvm-svn: 253274
* Implement P0013R1: Logical Operator Type Traits. Make a hidden ↵Marshall Clow2015-11-161-142/+198
| | | | | | implementation (__and_, __or_, and __not_) so that we can use them elsewhere in non-C++17 code - for example, in the LFTS llvm-svn: 253215
* Implement P0074: Making owner_less more flexibleMarshall Clow2015-11-121-0/+28
| | | | llvm-svn: 252905
* Walter pointed out some missing includes in the tests. Fixing the includes ↵Marshall Clow2015-11-101-4/+9
| | | | | | uncovered a couple bugs in the _v type traits. Fixed those, too llvm-svn: 252612
* Add initial support for the MUSL C library.Vasileios Kalintiris2015-11-094-5/+75
| | | | | | | | | | | | | | | | | | | Summary: This patch adds the LIBCXX_LIBC_IS_MUSL cmake option to allow the building of libcxx with the Musl C library. The option is necessary as Musl does not provide any predefined macro in order to test for its presence, like GLIBC. Most of the changes specify the correct path to choose through the various #if/#else constructs in the locale code. Depends on D13407. Reviewers: mclow.lists, jroelofs, EricWF Subscribers: jfb, tberghammer, danalbert, srhines, cfe-commits Differential Revision: http://reviews.llvm.org/D13673 llvm-svn: 252457
* Implement LWG#2353: std::next is over-constrainedMarshall Clow2015-11-071-5/+5
| | | | llvm-svn: 252407
* More of P0006R0: type traits variable aliases for C++17.Marshall Clow2015-11-071-0/+120
| | | | llvm-svn: 252406
* Cleanup: move visibility/linkage attributes to the first declaration.Evgeniy Stepanov2015-11-0715-260/+496
| | | | | | | | | | | | This change moves visibility attributes from out-of-class method definitions to in-class declaration. This is needed for a switch to attribute((internal_linkage)) (see http://reviews.llvm.org/D13925) which can only appear on the first declaration. This change does not touch istream/ostream/streambuf. They are handled separately in http://reviews.llvm.org/D14409. llvm-svn: 252385
* Allow deque to handle incomplete types.Evgeniy Stepanov2015-11-062-12/+46
| | | | | | | | Allow deque and deque::iterator instantiation with incomplete element type. This is an ABI breaking change, and it is only enabled if LIBCXX_ABI_VERSION >= 2 or LIBCXX_ABI_UNSTABLE=ON. llvm-svn: 252350
* Cleanup foo.h headers and __config to work in CEric Fiselier2015-11-066-3/+24
| | | | llvm-svn: 252274
* Implement P0092R1 for C++1zMarshall Clow2015-11-051-0/+123
| | | | llvm-svn: 252195
* Make reverse() call iter_swap like the standard says, instead of calling ↵Marshall Clow2015-11-021-2/+2
| | | | | | swap directly. No real change. llvm-svn: 251836
* Implement the first part of P0006R0: Adopt Type Traits Variable Templates ↵Marshall Clow2015-11-011-2/+312
| | | | | | for C++17. Significantly augment the existing tests. llvm-svn: 251766
* Revert r249929 ("Split <string.h> out of <cstring>").Richard Smith2015-10-292-86/+18
| | | | | | | | | | | | | | This change caused problems when building code like povray that: a) uses 'using namespace std;' b) is built on an environment where the C library provides the "wrong" (non-const-correct) interface for the str* functions c) makes an unqualified call to one of those str* functions A patch is out for review to add a facility to fix this (and to give the correct signatures for these functions whenever possible, even when the C library does not do so). This revert is expected to be temporary. llvm-svn: 251665
* Implement P0004R1 'Remove Deprecated iostreams aliases'Marshall Clow2015-10-291-6/+9
| | | | llvm-svn: 251618
* Fix LWG#2489: mem_fn() should be noexceptMarshall Clow2015-10-251-2/+2
| | | | llvm-svn: 251257
* Fix LWG#2476: scoped_allocator_adaptor is not assignableMarshall Clow2015-10-251-0/+4
| | | | llvm-svn: 251253
* Add a test for LWG#2466: allocator_traits::max_size() default behavior is ↵Marshall Clow2015-10-251-1/+1
| | | | | | incorrect llvm-svn: 251252
* Fix LWG#2127: Move-construction with raw_storage_iterator.Marshall Clow2015-10-251-0/+4
| | | | llvm-svn: 251247
* Fix LWG#2244: basic_istream::seekgMarshall Clow2015-10-251-0/+1
| | | | llvm-svn: 251246
* Detect relaxed constexpr rules for gcc versionsMarshall Clow2015-10-201-1/+4
| | | | llvm-svn: 250802
* Fix GCC atomic implementation in C++03Eric Fiselier2015-10-141-3/+8
| | | | llvm-svn: 250279
* ABI versioning macros for libc++.Evgeniy Stepanov2015-10-133-10/+21
| | | | | | | | C++ macros and CMake options that specify the default ABI version of the library, and can be overridden to pick up new ABI-changing features. llvm-svn: 250254
* Fix use of libc++ <foo.h> headers from within an 'extern "C"' context in C++98.Richard Smith2015-10-131-0/+2
| | | | | | Previously, this resulted in us declaring a template for static_assert emulation within the 'extern "C"' context, which is ill-formed. llvm-svn: 250247
* Remove __config module to avoid #include cycle when libc headers include ↵Richard Smith2015-10-131-1/+5
| | | | | | libc++'s <foo.h> headers. llvm-svn: 250236
* [libcxx] Capture configuration information when installing the libc++ headersEric Fiselier2015-10-132-0/+47
| | | | | | | | | | | | | | | | | Summary: Hi all, This patch is a successor to D11963. However it has changed dramatically and I felt it would be best to start a new review thread. Please read the design documentation added in this patch for a description of how it works. Reviewers: mclow.lists, danalbert, jroelofs, EricWF Subscribers: vkalintiris, rnk, ed, espositofulvio, asl, eugenis, cfe-commits Differential Revision: http://reviews.llvm.org/D13407 llvm-svn: 250235
* Unrevert r249889, and XFAIL the test for Darwin, where the libc apparently ↵Richard Smith2015-10-102-8/+137
| | | | | | doesn't provide a correct overload set for some functions. llvm-svn: 249932
* Split <string.h> out of <cstring>.Richard Smith2015-10-102-18/+86
| | | | | | | | Also fix the overload set for the five functions whose signatures change in the case where we can fix it. This is already covered by existing tests for the affected systems. llvm-svn: 249929
* Revert r249889 due to bot failure.Manman Ren2015-10-102-137/+8
| | | | llvm-svn: 249926
OpenPOWER on IntegriCloud