summaryrefslogtreecommitdiffstats
path: root/libcxx
Commit message (Collapse)AuthorAgeFilesLines
...
* AIX system headers need stdint.h and inttypes.h to be re-enterableXing Xue2019-06-203-0/+278
| | | | | | | | | | | | | | | | | Summary: AIX system headers need stdint.h and inttypes.h to be re-enterable when macro _STD_TYPES_T is defined so that limit macro definitions such as UINT32_MAX can be found. This patch attempts to allow that on AIX. Reviewers: hubert.reinterpretcast, jasonliu, mclow.lists, EricWF Reviewed by: hubert.reinterpretcast, mclow.lists Subscribers: jfb, jsji, christof, cfe-commits, libcxx-commits, llvm-commits Tags: #LLVM, #clang, #libc++ Differential Revision: https://reviews.llvm.org/D59253 llvm-svn: 363939
* [NFC][libc++] Remove stray semi-colon after function definitionLouis Dionne2019-06-191-1/+1
| | | | llvm-svn: 363835
* Mark papers P1458, P1459, P1462 and P1464 as complete. No changed needed to ↵Marshall Clow2019-06-191-4/+4
| | | | | | either the library or the tests. llvm-svn: 363834
* [libc++] Revert r363692 which implements P0608R3Zhihao Yuan2019-06-196-238/+6
| | | | | | | The change caused a large number of compiler failures in Google's codebase. People need time to evaluate the impact. llvm-svn: 363764
* Disable the 'nextafter' portions of these tests on PPC when using 128-bit ↵Marshall Clow2019-06-181-19/+27
| | | | | | doubles because the 'nextafter' call doesn't work right. Reviewed as https://reviews.llvm.org/D62384. Thanks to Xing Xue for the patch, and Hubert for the explanation. llvm-svn: 363740
* Remove GCC C++03 fallbacks for decltype and static_assert.Eric Fiselier2019-06-181-26/+2
| | | | | | | This means libc++ no longer needs to write extra braces in static asserts: Ex `static_assert((is_same_v<T, V>), "msg")`. llvm-svn: 363738
* Reconfigure docker builders to be more modular.Eric Fiselier2019-06-1812-510/+303
| | | | | | And other various cleanups to the configuration. llvm-svn: 363722
* Fix the floating point version of midpoint. It wasn't constexpr, among other ↵Marshall Clow2019-06-182-16/+34
| | | | | | things. Add more tests. As a drive-by, the LCD implementation had a class named '__abs' which did a 'absolute value to a common-type' conversion. Rename that to be '__ct_abs'. llvm-svn: 363714
* [libc++] Implement P0608R3 - A sane variant converting constructorZhihao Yuan2019-06-186-6/+238
| | | | | | | | | | | | | | | | | | Summary: Prefer user-defined conversions over narrowing conversions and conversions to bool. References: http://wg21.link/p0608 Reviewers: EricWF, mpark, mclow.lists Reviewed By: mclow.lists Subscribers: zoecarver, ldionne, libcxx-commits, cfe-commits, christof Differential Revision: https://reviews.llvm.org/D44865 llvm-svn: 363692
* [libc++] Re-apply XFAIL to is_base_of test that was inadvertently revertedLouis Dionne2019-06-181-4/+5
| | | | llvm-svn: 363689
* [libc++] Revert the addition of map/multimap CTADLouis Dionne2019-06-189-775/+3
| | | | | | | | | | | | | This was found to be broken on Clang trunk. This is a revert of the following commits (the subsequent commits added XFAILs to the tests that were missing from the original submission): r362986: Implement deduction guides for map/multimap. r363014: Add some XFAILs r363097: Add more XFAILs r363197: Add even more XFAILs llvm-svn: 363688
* [NFC] Assign a couple of LWG issues to myselfLouis Dionne2019-06-171-3/+3
| | | | llvm-svn: 363605
* [libc++] Update ABI list for ABI v2Louis Dionne2019-06-171-0/+74
| | | | | | I forgot to add symbols for filesystem. llvm-svn: 363603
* Update status of issue 3209Marshall Clow2019-06-171-2/+2
| | | | llvm-svn: 363594
* Add tests for LWG 3206. NFCMarshall Clow2019-06-172-2/+25
| | | | llvm-svn: 363589
* Update the meeting page with papers/issues that are ready for CologneMarshall Clow2019-06-171-39/+45
| | | | llvm-svn: 363575
* Fix a '>= 0' test on unsigned that I inadvertantly introduced. Now correctly ↵Marshall Clow2019-06-171-1/+1
| | | | | | '!= 0'. Thanks to Arthur for the catch llvm-svn: 363557
* add header to help with template testingEric Fiselier2019-06-151-0/+36
| | | | llvm-svn: 363503
* attempt to unbreak buildbotsEric Fiselier2019-06-142-2/+9
| | | | llvm-svn: 363442
* [libcxx] Add XFAIL for facet test when back-deploying to older macOSLouis Dionne2019-06-141-0/+10
| | | | llvm-svn: 363405
* [libc++] Keep __regex_word in sync with ctype_baseMikhail Maltsev2019-06-142-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The class ctype_base in the header <__locale> contains masks for character classification functions, which are kept in sync with platform's C library, hence it contains many special cases. The value of the bit mask __regex_word in the header <regex> must not clash with those bit masks. Currently the default case (i.e. unknown platform/C library) is handled incorrectly: the __regex_word clashes with ctype_base::punct. To avoid replicating the whole list of platforms in <regex> this patch defines __regex_word in <__locale>, so that it is always kept in sync with other masks. Reviewers: ldionne, mclow.lists, EricWF Reviewed By: ldionne Subscribers: krytarowski, christof, dexonsmith, pbarrio, simon_tatham, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D63284 llvm-svn: 363363
* [libc++] Fix build with gcc 4.8Thomas Anderson2019-06-131-1/+1
| | | | | | | | | | | | gcc 4.8.4 (but not 5.4.0 or 7.3.0) has trouble initializing errc with {}, giving the error in [1]. This CL switches to explicitly using errc(0), which gcc 4.8 accepts. [1] https://bugs.chromium.org/p/chromium/issues/detail?id=973723 Differential Revision: https://reviews.llvm.org/D63296 llvm-svn: 363333
* [libc++] Add missing #include in <cwchar> testsLouis Dionne2019-06-132-0/+2
| | | | | | | Thanks to Mikhail Maltsev for the patch. Differential Revision: https://reviews.llvm.org/D63289 llvm-svn: 363290
* Make GCC in C++03 UnsupportedEric Fiselier2019-06-132-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch make G++03 explicitly unsupported with libc++, as discussed on the mailing lists. Below is the rational for this decision. ---------------------------------------------------------------------------------------------------- libc++ claims to support GCC with C++03 ("G++03"), and this is a problem for our users. Our C++03 users are all using Clang. They must be. Less than 9% of the C++03 tests pass with GCC [1][2]. No non-trivial C++ program could work. Attempting to support G++03 impacts our QoI considerably. Unlike Clang, G++03 offers almost no C++11 extensions. If we could remove all the fallbacks for G++03, it would mean libc++ could:: * Improve Correctness: Every `#ifdef _LIBCPP_HAS_NO_<C++11-feature>` is a bug manifest. It exists to admit for deviant semantics. * Achieve ABI stability between C++03 and C++11 Differences between our C++03 and C++Rest branches contain ABI bugs. For example `std::nullptr_t` and `std::function::operator()(...)` are currently incompatible between C++11 and C++03, but could be fixed. * Decrease Compile Times and Memory Usage: Writing efficient SFINAE requires C++11. Using alias templates, libc++ could reduce the number of instantiations it produces substantially. * Decrease Binary Size Similar to the last point, G++03 forces metaprogramming techniques that emit more debug information [3] [4]. Compared to libstdc++, debug information size increases of +10% are not uncommon. Reviewers: ldionne, mclow.lists, EricWF Reviewed By: ldionne, EricWF Subscribers: zoecarver, aprantl, dexonsmith, arphaman, libcxx-commits, #libc Differential Revision: https://reviews.llvm.org/D63154 llvm-svn: 363219
* [libcxx] XFAIL set/multiset CTAD tests on Apple Clang 10Louis Dionne2019-06-122-2/+2
| | | | llvm-svn: 363209
* [libcxx] XFAIL some CTAD tests on AppleClang 10Louis Dionne2019-06-122-2/+2
| | | | | | | AppleClang 10 doesn't contain some changes that are required for this test to give the right error message. llvm-svn: 363197
* Apply [[nodebug]] to typedefs throughout the STL.Eric Fiselier2019-06-128-151/+160
| | | | | | | | | | | | | | | | When applied to a typedef or alias template, the [[nodebug]] attribute makes the typedef transparent to the debugger, so instead of seeing `std::__function::__alloc_func<remove_reference<void(&)()>::type, allocator<remove_reference<void(&)()>, void()>::_Target` you see `void(&)()` as the type of the variable in your debugger. Removing all this SFINAE noise from debug info has huge binary size wins, in addition to improving the readability. For now this change is on by default. Users can override it by specifying -D_LIBCPP_NODEBUG_TYPE= llvm-svn: 363117
* Move libc++ specific tests for std::function out of the std directoryEric Fiselier2019-06-112-0/+0
| | | | llvm-svn: 363111
* Add documentation and tests for Clangs C++11 extensions in C++03.Eric Fiselier2019-06-113-0/+254
| | | | | | | | | | | | | | | | As we gear up to drop support for GCC in C++03, we should make clear what our C++03 mode is, the C++11 extensions it provides, and the C++11 extensions it depends on. The section of this document discussing user-facing extensions has been left blank while the community discusses new directions. For now it's just a warning to users. Additionally, the document contains examples of how these extensions should be used and why. For example, using alias templates over class templates. llvm-svn: 363110
* [libcxx] Mark CTAD tests for set and multiset as unsupported on older Apple ↵Louis Dionne2019-06-112-0/+2
| | | | | | | | Clangs Those fail on Green Dragon. llvm-svn: 363107
* Mark CTAD fail tests for set/multiset as XFAIL for older compilers that give ↵Marshall Clow2019-06-112-0/+4
| | | | | | different error messages llvm-svn: 363099
* XFAIL a couple of tests on apple-clang-9.1, which is a compiler that I ↵Marshall Clow2019-06-113-3/+4
| | | | | | didn't know existed llvm-svn: 363097
* Check in test that demonstrates ABI break for std::function.Eric Fiselier2019-06-111-0/+45
| | | | | | | Our C++03 and C++11 implementations of function are not ABI compatible. I've added a "test" that demonstrates this. llvm-svn: 363092
* [libc++] Implement deduction guides for <set>Louis Dionne2019-06-115-2/+574
| | | | | | | | | | This is part of C++17's P0433. Thanks to Arthur O'Dwyer for the patch. Differential Revision: https://reviews.llvm.org/D58582 llvm-svn: 363090
* [libcxx] Make std::tuple<> trivially constructibleLouis Dionne2019-06-112-1/+23
| | | | | | | | | | | | | | | | | | | Summary: This is not mandated by the Standard, but it's nonetheless a nice property to have, especially since it's so easy to implement. It also shrinks our bug list! PR41714 Reviewers: mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D62618 llvm-svn: 363075
* [libcxx] Slightly improved policy for handling experimental featuresLouis Dionne2019-06-1136-697/+238
| | | | | | | | | | | | | | | | | | | | Summary: Following the discussion on the libcxx-dev mailing list (http://lists.llvm.org/pipermail/libcxx-dev/2019-May/000358.html), this implements the new policy for handling experimental features and their deprecation. We basically add a deprecation warning for std::experimental::filesystem, and we remove a bunch of <experimental/*> headers that were now empty. Reviewers: mclow.lists, EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, arphaman, libcxx-commits, jfb Tags: #libc Differential Revision: https://reviews.llvm.org/D62428 llvm-svn: 363072
* Add a test for is_base_of and incomplete types. Because this trait uses a ↵Marshall Clow2019-06-111-0/+92
| | | | | | compiler intrinsic which was broken in many clangs, have lots of XFAILs. llvm-svn: 363029
* XFAIL a couple of CTAD tests on clang-6; it gives different error messages ↵Marshall Clow2019-06-112-0/+4
| | | | | | than clang 7/8/9 llvm-svn: 363014
* Recommit r362649, which was reverted in r262680 because of bugs in ↵Marshall Clow2019-06-101-103/+37
| | | | | | std::to_chars (which have now been fixed). Speedup to_string and to_wstring for integers using stack buffer and SSO llvm-svn: 363003
* Implement deduction guides for map/multimap. Reviewed as ↵Marshall Clow2019-06-108-2/+769
| | | | | | https://reviews.llvm.org/D58587. Thanks to Quuxplusone for the submission. llvm-svn: 362986
* [libc++] Fix leading zeros in std::to_charsZhihao Yuan2019-06-102-116/+141
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: It is a bugfix proposal for https://bugs.llvm.org/show_bug.cgi?id=42166. `std::to_chars` appends leading zeros if input 64-bit value has 9, 10 or 11 digits. According to documentation `std::to_chars` must not append leading zeros: https://en.cppreference.com/w/cpp/utility/to_chars Changeset should not affect `std::to_chars` performance: http://quick-bench.com/CEpRs14xxA9WLvkXFtaJ3TWOVAg Unit test that `std::from_chars` supports compatibility for both `std::to_chars` outputs (previous and fixed one) already exists: https://github.com/llvm-mirror/libcxx/blob/1f60111b597e5cb80a4513ec86f79b7e137f7793/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp#L63 Reviewers: lichray, mclow.lists, ldionne, EricWF Reviewed By: lichray, mclow.lists Subscribers: zoecarver, christof, dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D63047 llvm-svn: 362967
* update debugging docs to be less out of dateEric Fiselier2019-06-081-23/+14
| | | | llvm-svn: 362866
* Substantially reduce instantiations and debug size of std::functionEric Fiselier2019-06-083-19/+139
| | | | | | | | | | | | | | | | | std::function uses a standard allocator to manage its memory, however standard allocators are templates and using them correctly requires a stupid amount of instantiations. This leads to a substantial increase in debug info and object sizes. This patch addresses the issue by dropping the allocator when possible and using raw new and delete to get memory. This change decreases the object file size for the test func.wrap.func.con/F.pass.cpp by 33% and the final binary by 29% (when compiled with -g -ggnu-pubnames -gpubnames). It also roughly halfs the number of entries in the pubnames and pubtype sections. llvm-svn: 362865
* Fix some incorrect std::function testsEric Fiselier2019-06-081-2/+4
| | | | llvm-svn: 362861
* Revert "Speedup to_string and to_wstring for integers using stack buffer and ↵Vlad Tsyrklevich2019-06-061-37/+103
| | | | | | | | | | SSO." This reverts commit 7ce7110e6d964778141c0866488e154b1ce73d69, it was causing sanitizer bot failures due to changing behavior of std::to_string(). See https://reviews.llvm.org/D59178#1532023 llvm-svn: 362680
* [libcxx][test] Include test_workarounds.h where neededLouis Dionne2019-06-052-0/+2
| | | | | | | | | | | Some tests require `TEST_WORKAROUND_CONSTEXPR_IMPLIES_NOEXCEPT`, but they did not include the header that defines that macro. Thanks to Michael Park for the patch. Differential Revision: https://reviews.llvm.org/D62920 llvm-svn: 362660
* Update issue statuses. Reviewed as https://reviews.llvm.org/D62932Marshall Clow2019-06-052-4/+4
| | | | llvm-svn: 362659
* Speedup to_string and to_wstring for integers using stack buffer and SSO. ↵Marshall Clow2019-06-051-103/+37
| | | | | | Reviewed as https://reviews.llvm.org/D59178 Thanks to ivafanas for all his work on this patch. llvm-svn: 362649
* [libcxx] Add test to check min/max requirement to regular expressionLouis Dionne2019-06-041-0/+67
| | | | | | | | | | | This commit adds tests that repeated characters in regular expressions are within numeric limits, and that a <= b in a regex like `x{a,b}`. Thanks to Andrey Maksimov for the patch. Differential Revision: https://reviews.llvm.org/D62816 llvm-svn: 362525
* No longer reject inputs when using a locale that has grouping information ↵Marshall Clow2019-06-042-3/+5
| | | | | | _and_ the input has no grouping characters at all. We continue to reject cases when the input has grouping characters in the wrong place. Fixes PR#28704 llvm-svn: 362508
OpenPOWER on IntegriCloud