summaryrefslogtreecommitdiffstats
path: root/libcxx
Commit message (Collapse)AuthorAgeFilesLines
...
* [NFC] Fix incorrect comment in std::listLouis Dionne2018-11-031-1/+1
| | | | llvm-svn: 346072
* Fix test assumption that Linux implies glibc.Dan Albert2018-11-011-3/+9
| | | | | | | | | | | | | | | | | | | | | Summary: This fixes an regression when using bionic introduced in r345173. I need to follow up and figure out what exactly is implied by TEST_HAS_C11_FEATURES and see what the correct configuration is for bionic (new versions should have everything the tests care about, versions that predate C11 certainly don't), but this gets the tests back to the old behavior. Reviewers: EricWF Reviewed By: EricWF Subscribers: mclow.lists, christof, ldionne, libcxx-commits, cfe-commits Differential Revision: https://reviews.llvm.org/D53956 llvm-svn: 345900
* Revert "Bug 39129: Speeding up partition_point/lower_bound/upper_bound/ by ↵Louis Dionne2018-11-013-153/+4
| | | | | | | | | | | using unsigned division by 2 when possible." This reverts r345525. I'm reverting because that patch apparently caused a regression on certain platforms (see https://reviews.llvm.org/D53994). Since we don't fully understand the reasons for the regression, I'm reverting until we can provide a fix we understand. llvm-svn: 345893
* Use C++11 fallthrough attribute syntax when available and add a breakReid Kleckner2018-11-011-1/+5
| | | | | | | | | | | | | | | | | | | Summary: This silences the two -Wimplicit-fallthrough warnings clang finds in ItaniumDemangle.h in libc++abi. Clang does not have a GNU attribute spelling for this attribute, so this is necessary. I will commit the same change to the LLVM demangler soon. Reviewers: EricWF, ldionne Subscribers: christof, erik.pilkington, cfe-commits Differential Revision: https://reviews.llvm.org/D53985 llvm-svn: 345870
* [libcxx] Fix usage of _C2, which is a "nasty macro" in some environmentsLouis Dionne2018-11-013-36/+39
| | | | | | The problem was pointed out in https://reviews.llvm.org/D48896#inline-475775. llvm-svn: 345834
* [NFC] Replace C++1y and C++1z by C++14 and C++17, respectivelyLouis Dionne2018-10-312-7/+8
| | | | llvm-svn: 345762
* [NFC] Mark "Splicing Maps and Sets" as done in LLVM 8.0Louis Dionne2018-10-311-1/+1
| | | | llvm-svn: 345759
* Second half of C++17's splicing maps and setsErik Pilkington2018-10-3116-68/+1874
| | | | | | | | | | This commit adds a merge member function to all the map and set containers, which splices nodes from the source container. This completes support for P0083r3. Differential revision: https://reviews.llvm.org/D48896 llvm-svn: 345744
* Correct ABI list change wrongly advertised as being in the 7.0 releaseLouis Dionne2018-10-301-1/+4
| | | | llvm-svn: 345670
* Revert "Build with -fvisibility=hidden"Eric Fiselier2018-10-303-1904/+1883
| | | | | | | I messed it up somewhere and now the tests aren't linking. Reverting while I investigate. llvm-svn: 345667
* Build with -fvisibility=hiddenEric Fiselier2018-10-303-1883/+1904
| | | | | | | | | | | | | | | | | | | | | Summary: This change changes the build to use -fvisibility=hidden The exports this patch removes are symbols that should have never been exported by the dylib in the first place, and should all be symbols which the linker won't de-duplicate across SO boundaries, making them safe to remove. After this change, we should be able to apply `_LIBCPP_HIDDEN` to the versioning namespace without changing the export lists. Reviewers: ldionne, mclow.lists Reviewed By: ldionne Subscribers: smeenai, mgorny, libcxx-commits Differential Revision: https://reviews.llvm.org/D53868 llvm-svn: 345664
* [libcxx] Correct link to code review for P1006Louis Dionne2018-10-301-2/+2
| | | | llvm-svn: 345658
* Make libc++'s versioning namespace customizableEric Fiselier2018-10-305-12/+37
| | | | | | | | | | | | | | | | | Summary: This patch makes the versioning namespace libc++ uses customizable by the user using `-DLIBCXX_ABI_NAMESPACE=__foo`. This allows users to build custom versions of libc++ which can be linked into binaries with other libc++ versions without causing symbol conflicts or ODR issues. Reviewers: mclow.lists, ldionne Reviewed By: ldionne Subscribers: kristina, smeenai, mgorny, phosek, libcxx-commits Differential Revision: https://reviews.llvm.org/D53879 llvm-svn: 345657
* Add link to implementation for P1006R0Marshall Clow2018-10-301-1/+1
| | | | llvm-svn: 345653
* Update LLVM version used on Appveyor bot, remove MSVC 2015 botEric Fiselier2018-10-302-9/+1
| | | | llvm-svn: 345652
* Add more benchmarks for std::string.Samuel Benzaquen2018-10-301-21/+326
| | | | | | | | | | | | | | | Summary: Added benchmarks for Construct, Copy, Move, Destroy, Relationals and Read. On the ones that matter, the benchmarks tests hot and cold data, and opaque and transparent inputs. Reviewers: EricWF Subscribers: christof, ldionne, libcxx-commits Differential Revision: https://reviews.llvm.org/D53825 llvm-svn: 345611
* Unify definition of _LIBCPP_BEGIN/END_NAMESPACE_STDEric Fiselier2018-10-301-35/+19
| | | | llvm-svn: 345561
* XFAIL test on OS X availabilityEric Fiselier2018-10-292-7/+7
| | | | llvm-svn: 345529
* Added Phab link for P0927Marshall Clow2018-10-291-2/+2
| | | | llvm-svn: 345526
* Bug 39129: Speeding up partition_point/lower_bound/upper_bound/ by using ↵Eric Fiselier2018-10-293-4/+153
| | | | | | | | | | | | unsigned division by 2 when possible. Patch by Denis Yaroshevskiy (denis.yaroshevskij@gmail.com) The rational and measurements can be found in the bug description: https://bugs.llvm.org/show_bug.cgi?id=39129 Reviewed as https://reviews.llvm.org/D52697 llvm-svn: 345525
* Fix mismatch between size_t and uint64_t in std::set benchmark.Samuel Benzaquen2018-10-291-3/+3
| | | | llvm-svn: 345523
* [libc++] Use exclude_from_explicit_instantiation instead of always_inlineLouis Dionne2018-10-292-1/+17
| | | | | | | | | | | | | | | | | | | | | | | Summary: This commit adopts the exclude_from_explicit_instantiation attribute discussed at [1] and reviewed in [2] in libc++ to supplant the use of __always_inline__ for visibility purposes. This change means that users wanting to link together translation units built with different versions of libc++'s headers into the same final linked image MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building those TUs. Doing otherwise will lead to ODR violations and ABI issues. [1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html [2]: https://reviews.llvm.org/D51789 Reviewers: rsmith, EricWF Subscribers: dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D52405 llvm-svn: 345516
* Fix PR39458 _LIBCPP_DEBUG breaks heterogeneous compare.Eric Fiselier2018-10-262-12/+51
| | | | | | | | | | | | | | | | | | | | The types/comparators passed to std::upper_bound and std::lower_bound are not required to provided to provide an operator</comp(...) which accepts the arguments in reverse order. Nor are the ranges required to have a strict weak ordering. However, in debug mode we attempted to check the result of a comparison with the arguments reversed, which may not compiler. This patch removes the use of the debug comparator for upper_bound and lower_bound. equal_range et al still use debug comparators when they call __upper_bound and __lower_bound. See llvm.org/PR39458 llvm-svn: 345434
* Work around gcc.gnu.org/PR87766Eric Fiselier2018-10-261-1/+1
| | | | llvm-svn: 345425
* [NFC] Update comment in libc++ ABI changelogLouis Dionne2018-10-261-1/+1
| | | | llvm-svn: 345424
* Fix incorrect use of aligned allocation in get_temporary_buffer.Eric Fiselier2018-10-261-1/+1
| | | | llvm-svn: 345403
* XFAIL sized deallocation test with GCCEric Fiselier2018-10-261-0/+3
| | | | llvm-svn: 345400
* Run the min/max tests agaist the header <charconv>. Fix that header so it ↵Marshall Clow2018-10-262-0/+7
| | | | | | passes. NFC. llvm-svn: 345352
* fix incorrect placement of _LIBCPP_ALWAYS_INLINE in valarrayEric Fiselier2018-10-251-1/+2
| | | | llvm-svn: 345289
* Implement sized deallocation for std::allocator and friends.Eric Fiselier2018-10-257-58/+382
| | | | | | | | | | | | | | | | | | | Summary: C++14 sized deallocation is disabled by default due to ABI concerns. However, when a user manually enables it then libc++ should take advantage of it since sized deallocation can provide a significant performance win depending on the underlying malloc implementation. (Note that libc++'s definitions of sized delete don't do anything special yet, but users are free to provide their own). This patch updates __libcpp_deallocate to selectively call sized operator delete when it's available. `__libcpp_deallocate_unsized` should be used when the size of the allocation is unknown. On Apple this patch makes no attempt to determine if the sized operator delete is unavailable, only that the language feature is enabled. This could cause a compile error when using `std::allocator`, but the same compile error would occur whenever the user calls `new`, so I don't think it's a problem. Reviewers: ldionne, mclow.lists Reviewed By: ldionne Subscribers: rsmith, ckennelly, libcxx-commits, christof Differential Revision: https://reviews.llvm.org/D53120 llvm-svn: 345281
* [libc++] Make sure we can build libc++ with -fvisibility=hiddenLouis Dionne2018-10-2515-32/+75
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: When building with -fvisibility=hidden, some symbols do not get exported from libc++.dylib. This means that some entities are not explicitly given default visibility in the source code, and that we rely on the fact -fvisibility=default is the default. This commit explicitly gives default visibility to those symbols to avoid being dependent on the command line flags used. The commit also remove symbols from the dylib -- those symbols do not actually need to be exported from the dylib and this should not be an ABI break. Finally, in the future, we may want to mark the whole std:: namespace as having hidden visibility (to switch from opt-out to opt-in), in which case the changes done in this commit will be required. Reviewers: EricWF Subscribers: mgorny, christof, dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D52662 llvm-svn: 345260
* Revert "Fix use of __libcpp_deallocate in dynarray"Eric Christopher2018-10-251-1/+1
| | | | | | This reverts commit r345234 as it depended on the sized deallocation commit. llvm-svn: 345240
* Temporarily Revert "Implement sized deallocation for std::allocator and ↵Eric Christopher2018-10-256-377/+55
| | | | | | | | | | friends." This is breaking the bots here (and related): http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-asan/builds/1428 This reverts commit r345214. llvm-svn: 345239
* Fix use of __libcpp_deallocate in dynarrayEric Fiselier2018-10-251-1/+1
| | | | llvm-svn: 345234
* Implement sized deallocation for std::allocator and friends.Eric Fiselier2018-10-246-55/+377
| | | | | | | | | | | | | | | | | | | Summary: C++14 sized deallocation is disabled by default due to ABI concerns. However, when a user manually enables it then libc++ should take advantage of it since sized deallocation can provide a significant performance win depending on the underlying malloc implementation. (Note that libc++'s definitions of sized delete don't do anything special yet, but users are free to provide their own). This patch updates __libcpp_deallocate to selectively call sized operator delete when it's available. `__libcpp_deallocate_unsized` should be used when the size of the allocation is unknown. On Apple this patch makes no attempt to determine if the sized operator delete is unavailable, only that the language feature is enabled. This could cause a compile error when using `std::allocator`, but the same compile error would occur whenever the user calls `new`, so I don't think it's a problem. Reviewers: ldionne, mclow.lists Reviewed By: ldionne Subscribers: rsmith, ckennelly, libcxx-commits, christof Differential Revision: https://reviews.llvm.org/D53120 llvm-svn: 345214
* Revert "Teach __libcpp_is_floating_point that __fp16 and _Float16 are"Petr Hosek2018-10-242-30/+0
| | | | | | | | | This reverts commits r333103 and r333108. _Float16 and __fp16 are C11 extensions and compilers other than Clang don't define these for C++. Differential Revision: https://reviews.llvm.org/D53670 llvm-svn: 345199
* Fix use of libc++ specific macro in support/test_macros.hEric Fiselier2018-10-241-3/+4
| | | | llvm-svn: 345173
* Adjust unsupported C++ versions in some testsMikhail Maltsev2018-10-24176-176/+176
| | | | | | | | | | | | | | | | | | | | Summary: Some tests (mainly the new C++20 calendar library) fail when libc++ is tested with '--param=std=c++98'. The failures happen because the tests actually don't support C++98, but don't mention C++98 in the 'UNSUPPORTED:' line. This change fixes the issue. Reviewers: mclow.lists, ldionne Reviewed By: ldionne Subscribers: arphaman, michaelplatings, libcxx-commits Differential Revision: https://reviews.llvm.org/D53640 llvm-svn: 345148
* Off-by-one errors strike again. Thank goodness for ASAN and the bots.Marshall Clow2018-10-231-4/+14
| | | | llvm-svn: 345076
* When filling a vector<bool> with stuff, initialize the last word of the ↵Marshall Clow2018-10-231-0/+4
| | | | | | storage that you're touching. Otherwise, when we lay down the bits with operator&=, we get UB from reading uninitialized memory. Fixes Bug 39354. Thanks to David Wagner for the bug report. llvm-svn: 345067
* Add benchmark for std::set.Samuel Benzaquen2018-10-232-20/+312
| | | | | | | | | | | | | | | | | Summary: Benchmarks for construct, find, insert and iterate, with sequential and random ordered inputs. It also improves the cartesian product benchmark header to allow for runtime values to be specified in the product. Reviewers: EricWF Subscribers: christof, ldionne, libcxx-commits Differential Revision: https://reviews.llvm.org/D53523 llvm-svn: 345035
* Mark the move construct/move assign tests as unsupported on C++03Marshall Clow2018-10-232-1/+2
| | | | llvm-svn: 345001
* Add tests for match_results copy/move assignment operators. NFCMarshall Clow2018-10-233-0/+106
| | | | llvm-svn: 344998
* Remove a 'const' from the synopsis. NFCMarshall Clow2018-10-231-1/+1
| | | | llvm-svn: 344997
* Updated the issue notes.Marshall Clow2018-10-231-6/+6
| | | | llvm-svn: 344989
* Add tests for match_results copy/move construction. NFCMarshall Clow2018-10-232-0/+83
| | | | llvm-svn: 344988
* Added more notes to the issues.Marshall Clow2018-10-221-6/+6
| | | | llvm-svn: 344975
* Update commnents to reflect the changes for LWG#3127. NFCMarshall Clow2018-10-221-1/+1
| | | | llvm-svn: 344953
* Update commnents to reflect the changes for LWG#3127. NFCMarshall Clow2018-10-222-1/+31
| | | | llvm-svn: 344951
* Update commnents to reflect the changes for LWG#3122. NFCMarshall Clow2018-10-223-0/+3
| | | | llvm-svn: 344950
OpenPOWER on IntegriCloud