| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
C++11's [hash.requirements] never required these typedefs from users.
llvm-svn: 346912
|
|
|
|
|
|
| |
This fixes compiler errors with MSVC's STL.
llvm-svn: 346911
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was implicitly converting [1, 3] to bool, which triggers
an MSVC warning. The test should just pass `true`, which is
simpler, has the same behavior, and avoids the warning. (This
is a library test, not a compiler test, and the conversion happens
before calling `push_back`, so passing [1, 3] isn't interesting
in any way. This resembles a previous change to stop passing
`1 == 1` in the `vector<bool>` tests.)
llvm-svn: 346910
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch renames the cxx-benchmark-unittests to check-cxx-benchmarks
and converts the target to use LIT in order to make the tests run faster
and provide better output.
In particular this runs each benchmark in a suite one by one, allowing
more parallelism while ensuring output isn't garbage with multiple threads.
Additionally, it adds the CMake flag '-DLIBCXX_BENCHMARK_TEST_ARGS=<list>'
to specify what options are passed when running the benchmarks.
llvm-svn: 346888
|
|
|
|
| |
llvm-svn: 346826
|
|
|
|
|
|
| |
Reviewed as https://reviews.llvm.org/D53828
llvm-svn: 346766
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
P1006 adds support for constexpr in the specialization of pointer_traits
for raw pointers. This is necessary in order to use pointer_traits in
the upcoming constexpr containers. We expect P1006 to be voted into the
working draft for C++20 at the San Diego meeting.
Reviewers: mclow.lists, EricWF
Subscribers: christof, dexonsmith, libcxx-commits
Differential Revision: https://reviews.llvm.org/D53867
llvm-svn: 346764
|
|
|
|
|
|
|
|
| |
This patch adds tests to ensure that multiset/unordered_multiset's emplace
method correctly constructs the elements without any intervening
constructions.
llvm-svn: 346743
|
|
|
|
|
|
| |
for the report
llvm-svn: 346738
|
|
|
|
| |
llvm-svn: 346630
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
The problem was pointed out in https://reviews.llvm.org/D48896#inline-475775.
llvm-svn: 345834
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 345529
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 345425
|
|
|
|
| |
llvm-svn: 345400
|
|
|
|
|
|
| |
passes. NFC.
llvm-svn: 345352
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 345173
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 345001
|
|
|
|
| |
llvm-svn: 344998
|
|
|
|
| |
llvm-svn: 344997
|
|
|
|
| |
llvm-svn: 344988
|
|
|
|
| |
llvm-svn: 344951
|
|
|
|
| |
llvm-svn: 344950
|
|
|
|
|
|
| |
The test is trying to avoid saying aligned_alloc on Windows' UCRT, which does not (and can not) implement aligned_alloc. However, it's testing for c1xx, meaning clang on Windows will fail this test when using the UCRT.
llvm-svn: 344829
|
|
|
|
|
|
| |
Reviewed as https://reviews.llvm.org/D50551
llvm-svn: 344821
|
|
|
|
|
|
|
|
| |
In this example, the ctor of G runs in the main thread in the expression G(), and also in the copy ctor of G() in the DECAY_COPY inside std::thread. The main thread destroys the G() instance at the semicolon, and the started thread destroys the G() after it returns. Thus there is a race between the threads on the n_alive variable.
The fix is to join with the background thread before attempting to destroy the G in the main thread.
llvm-svn: 344820
|
|
|
|
| |
llvm-svn: 344661
|
|
|
|
|
|
| |
clang. Reviewed as D51762
llvm-svn: 344627
|
|
|
|
|
|
| |
Reverted too much in r344580.
llvm-svn: 344582
|
|
|
|
|
|
|
|
|
|
| |
Revert r344535 "Wrap up the new chrono literals in an #ifdef..."
Revert r344546 "Mark a couple of test cases as 'C++17-only'..."
Some of the buildbot failures were masked by another error,
and this one was probably missed.
llvm-svn: 344580
|
|
|
|
| |
llvm-svn: 344546
|
|
|
|
|
|
| |
don't complain. I'm looking at you, clang 5.0.1
llvm-svn: 344535
|
|
|
|
|
|
| |
incomplete; there will be more patches coming. Reviewed as D51762
llvm-svn: 344529
|
|
|
|
| |
llvm-svn: 344421
|
|
|
|
| |
llvm-svn: 344417
|
|
|
|
|
|
| |
warnings. NFC
llvm-svn: 344416
|
|
|
|
| |
llvm-svn: 344220
|
|
|
|
|
|
|
|
| |
While __cplusplus was only used a few dozen times, TEST_STD_VAR is used
more than 2000 times. So we replace the former by the latter for
consistency in the tests. There should be no functional change.
llvm-svn: 344194
|
|
|
|
|
|
| |
This fixes a test failure caused by D53049.
llvm-svn: 344192
|
|
|
|
| |
llvm-svn: 344167
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Scoped capabilities need to be annotated as such, otherwise the thread
safety analysis won't work as intended.
Fixes PR39234.
Reviewers: ldionne
Reviewed By: ldionne
Subscribers: christof, libcxx-commits
Differential Revision: https://reviews.llvm.org/D53049
llvm-svn: 344096
|