Commit Graph

1323 Commits

Author SHA1 Message Date
Marshall Clow
6455d85714 More of P0006R0: type traits variable aliases for C++17.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252406 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-07 17:44:36 +00:00
Evgeniy Stepanov
a3b25f81d1 Cleanup: move visibility/linkage attributes to the first declaration.
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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252385 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-07 01:22:13 +00:00
Evgeniy Stepanov
746572b91d Allow deque to handle incomplete types.
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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252350 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-06 22:02:29 +00:00
Eric Fiselier
38e7a30143 Cleanup foo.h headers and __config to work in C
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252274 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-06 06:30:12 +00:00
Marshall Clow
223df2ef0f Implement P0092R1 for C++1z
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252195 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-05 19:33:59 +00:00
Marshall Clow
c010bd6289 Make reverse() call iter_swap like the standard says, instead of calling swap directly. No real change.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251836 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-02 21:34:25 +00:00
Marshall Clow
94611a888b Implement the first part of P0006R0: Adopt Type Traits Variable Templates for C++17. Significantly augment the existing tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251766 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-01 20:24:59 +00:00
Richard Smith
9d6ca4962b Revert r249929 ("Split <string.h> out of <cstring>").
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.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251665 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-29 23:32:29 +00:00
Marshall Clow
8aadda9a19 Implement P0004R1 'Remove Deprecated iostreams aliases'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251618 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-29 05:43:30 +00:00
Marshall Clow
fb7b97cfbb Fix LWG#2489: mem_fn() should be noexcept
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251257 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 20:12:16 +00:00
Marshall Clow
9533a4a80f Fix LWG#2476: scoped_allocator_adaptor is not assignable
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251253 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 19:52:47 +00:00
Marshall Clow
88fa03a06e Add a test for LWG#2466: allocator_traits::max_size() default behavior is incorrect
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251252 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 19:34:04 +00:00
Marshall Clow
332ab91947 Fix LWG#2127: Move-construction with raw_storage_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251247 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 18:58:07 +00:00
Marshall Clow
dbef2bb1d0 Fix LWG#2244: basic_istream::seekg
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251246 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 18:31:51 +00:00
Marshall Clow
ac042ab93d Detect relaxed constexpr rules for gcc versions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250802 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 07:37:11 +00:00
Eric Fiselier
a4ae16b67a Fix GCC atomic implementation in C++03
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250279 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 08:36:22 +00:00
Evgeniy Stepanov
4f01aa8fb8 ABI versioning macros for libc++.
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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250254 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 23:48:28 +00:00
Richard Smith
b3b00818e5 Fix use of libc++ <foo.h> headers from within an 'extern "C"' context in C++98.
Previously, this resulted in us declaring a template for static_assert emulation within the 'extern "C"' context, which is ill-formed.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250247 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 23:12:22 +00:00
Richard Smith
44d1476b6d Remove __config module to avoid #include cycle when libc headers include libc++'s <foo.h> headers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250236 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 22:13:33 +00:00
Eric Fiselier
73ffc78616 [libcxx] Capture configuration information when installing the libc++ headers
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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250235 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 22:12:02 +00:00
Richard Smith
de66c515de Unrevert r249889, and XFAIL the test for Darwin, where the libc apparently doesn't provide a correct overload set for some functions.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249932 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:39:51 +00:00
Richard Smith
9f4f08db91 Split <string.h> out of <cstring>.
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.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249929 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:25:31 +00:00
Manman Ren
e35e663f73 Revert r249889 due to bot failure.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249926 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:03:55 +00:00
Richard Smith
f2b3629dbf Split <wctype.h> out of <cwctype>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249890 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 19:57:37 +00:00
Richard Smith
26a70eccf2 Split <wchar.h> out of <cwchar>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249889 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 19:56:37 +00:00
Richard Smith
f650ea7131 Split <stdlib.h> out of <cstdlib>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249800 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 01:41:45 +00:00
Richard Smith
ff7ba4da7d Split <stdio.h> out of <cstdio>.
As with <stddef.h>, skip our custom header if __need_FILE or __need___FILE is defined.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249798 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 01:29:09 +00:00
Richard Smith
45bae0b7dc PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249788 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 00:26:50 +00:00
Richard Smith
759cd0e86b Split <stddef.h> out of <cstddef>.
There are a bunch of macros (__need_size_t etc) that request just one piece of
<stddef.h>; if any one of these is defined, we just directly include the
underlying header.

Note that <stddef.h> provides a ::nullptr_t. We don't want that available to
includers of <cstddef>, so instead of following the usual pattern where <cfoo>
includes <foo.h> then pulls things from :: into std:: with using-declarations,
we implement <stddef.h> and <cstddef> separately; both include <__nullptr> for
the definition of std::nullptr_t.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249761 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 22:25:27 +00:00
Richard Smith
4ccd90dd42 Fix incorrect file header. This is <cfenv> not <cctype>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249749 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 21:17:21 +00:00
Richard Smith
ddbf08114a Split <setjmp.h> out of <csetjmp>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249743 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:41:26 +00:00
Richard Smith
4faa3944c6 Split <math.h> out of <cmath>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249742 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:40:34 +00:00
Richard Smith
325c37a20f Split <inttypes.h> out of <cinttypes>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249741 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:38:53 +00:00
Richard Smith
f82f4f3f07 Split <float.h> out of <cfloat>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249740 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:37:44 +00:00
Richard Smith
1bbbd60ea7 Split <errno.h> out of <cerrno>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249739 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:37:11 +00:00
Richard Smith
ceeace9a60 Split <ctype.h> out of <cctype>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249738 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:36:30 +00:00
Richard Smith
72d7577b34 Factor definition of std::nullptr_t out of <cstddef> into a header that can also be used by <stddef.h>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249737 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:34:11 +00:00
Richard Smith
d8b2456344 Remove unnecessary inline functions capturing the contents of C library macros.
The C standard requires that these be provided as functions even if they're
also provided as macros, and a strict reading of the C++ standard library rules
suggests that (for instance) &::isdigit == &::std::isdigit, so these wrappers
are technically non-conforming.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249475 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-06 22:03:22 +00:00
Marshall Clow
7ed093bde7 Implement LWG#2063, and update the issues links to point to the github generated pages
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249325 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-05 16:17:34 +00:00
Eric Fiselier
423ca20f24 [libcxx] Attempt to fix __throw_future_error in C++03
Summary:
Hi Marshall,

Could you please test this patch and see if you run into the same linker errors we talked about?
I can't reproduce on linux or OS X.

Hopefully you can't find any problems and we can fix the C++03 bot.

Reviewers: mclow.lists

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D13337

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249192 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-02 21:25:15 +00:00
Eric Fiselier
5289b0d698 Fix initialzation order in dynarray
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@248988 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-01 07:29:38 +00:00
Marshall Clow
6a85e8a355 Fix Typo in GCC no RTTI detection. Fixes PR#24901. Thanks to Bernhard Rosenkraenzer for the report and the patch.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@248329 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-22 21:58:30 +00:00
Eric Fiselier
514c831504 Remove possible trailing padding from aligned_storage. Patch from Yiran Wang
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@248309 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-22 18:37:03 +00:00
Marshall Clow
6b0e4195eb Change pair::swap(pair&) to call ADL swap instead of iter_swap; this fixes an obscure bug having to do with overloaded operator&. Fixes PR#24890
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@248304 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-22 17:50:11 +00:00
Eric Fiselier
0b4ab6f08a Fix <atomic> with -pedantic-errors
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@248240 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-22 03:15:35 +00:00
Dan Albert
2897e786b4 Add endianness configuration block for GCC.
Previously GCC using libc++ would just leak endian.h for every
include.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@247827 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-16 18:10:47 +00:00
Marshall Clow
af9a44f256 Implementation of Boyer-Moore and Boyer-Moore-Horspool searchers for the LFTS.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@247036 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-08 17:59:09 +00:00
Eric Fiselier
65a6f64221 make common_type SFINAE-friendly and support void. Patch from Agustin Berge.
This patch also fixes PR22135. (https://llvm.org/bugs/show_bug.cgi?id=22135)
See the review for more information: http://reviews.llvm.org/D6964


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@246977 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-08 00:13:57 +00:00
Marshall Clow
a189974948 Make a helper routine __throw_future_error, and encapsulate the #ifdef _LIBCPP_NO_EXCEPTIONS there, instead of duplicating it throughout the code. No functionality change
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@246772 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-03 15:11:32 +00:00
Marshall Clow
6d9da5891f Remove unused code. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@246445 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-31 14:43:41 +00:00