| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
quick_exit() and at_quick_exit() were introduced in android NDK 21:
https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/stdlib.h#55
This CL conditions `_LIBCPP_HAS_QUICK_EXIT` on `__ANDROID_API__ >= 21`. The only place this macro is used is in some using declarations: `using ::quick_exit`, `using ::at_quick_exit`.
Also, add a missing include to sys/cdefs.h which is what defines `__BIONIC__`.
Reviewers: thakis, danalbert, EricWF
Reviewed By: danalbert
Subscribers: srhines, krytarowski
Differential Revision: https://reviews.llvm.org/D39479
llvm-svn: 317124
|
|
|
|
| |
llvm-svn: 317074
|
|
|
|
| |
llvm-svn: 317063
|
|
|
|
| |
llvm-svn: 316970
|
|
|
|
| |
llvm-svn: 316969
|
|
|
|
|
|
| |
unique_copy. No functional change to libc++; this is all test infastructure
llvm-svn: 316951
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LWG 3013 points out that the constructors and increment members
of the directory iterators need to allocate, and therefore cannot
be marked noexcept.
It also points out that `is_empty` and `copy` likely need to allocate
as well, and as such can also not be noexcept.
This patch speculatively implements the resolution removing noexcept,
because libc++ does indeed have the possibility of throwing on allocation
failure.
llvm-svn: 316941
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
incorrectly.
The guts of the increment method for recursive_directory_iterator
was failing to pass an error code object to calls to status/symlink_status,
which can throw under certain conditions.
This patch fixes the issues by correctly propagating the error codes.
However the noexcept still needs to be removed from the signature, as
mentioned in LWG 3014, but that change will be made in a separate commit.
llvm-svn: 316939
|
|
|
|
| |
llvm-svn: 316917
|
|
|
|
|
|
| |
Yaroshevskiy for both the bug report and the fix.
llvm-svn: 316914
|
|
|
|
| |
llvm-svn: 316874
|
|
|
|
| |
llvm-svn: 316873
|
|
|
|
| |
llvm-svn: 316867
|
|
|
|
|
|
| |
Update the tests to check this (and other noexcept bits
llvm-svn: 316456
|
|
|
|
|
|
| |
for the bug report.
llvm-svn: 316439
|
|
|
|
| |
llvm-svn: 316394
|
|
|
|
| |
llvm-svn: 316343
|
|
|
|
|
|
| |
Found by OSS-Fuzz
llvm-svn: 316191
|
|
|
|
|
|
| |
Reviewed as https://reviews.llvm.org/D39066
llvm-svn: 316172
|
|
|
|
|
|
| |
test cases > 255 elements
llvm-svn: 316125
|
|
|
|
|
|
| |
https://reviews.llvm.org/D37955
llvm-svn: 316095
|
|
|
|
|
|
|
|
|
|
|
|
| |
The logic to allocate a node within std::list was repeated
in a bunch of places. This is unneeded. This patch refactors
the shared logic into a single function to reduce duplication.
This patch is part of a set to clean up node construction in
general, but refactoring construction requires some more work
to make it work cleanly in C++03
llvm-svn: 316021
|
|
|
|
| |
llvm-svn: 316009
|
|
|
|
| |
llvm-svn: 315997
|
|
|
|
|
|
|
|
|
|
| |
Previously this macro used 0/1 to indicate if it was set.
This is unlike all other libc++ configuration macros which
use ifdef/ifndef.
This patch makes this macro consistent with everything else.
llvm-svn: 315995
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
perform push_back instead of emplace_back.
Summary:
The constructors `vector(Iter, Iter, Alloc = Alloc{})` and `assign(Iter, Iter)` don't correctly perform EmplaceConstruction from the result of dereferencing the iterator. This results in them performing an additional and unneeded copy.
This patch addresses the issue by correctly using `emplace_back` in C++11 and newer.
There are also some bugs in our `insert` implementation, but those will be handled separately.
@mclow.lists We should probably merge this into 5.1, agreed?
Reviewers: mclow.lists, dlj, EricWF
Reviewed By: mclow.lists, EricWF
Subscribers: cfe-commits, mclow.lists
Differential Revision: https://reviews.llvm.org/D38757
llvm-svn: 315994
|
|
|
|
|
|
| |
At least with clang-3.9 and earlier, -Wunknown-pragmas is also needed.
llvm-svn: 315882
|
|
|
|
|
|
|
| |
I *did* try to check that such kind of an issue was not introduced
by the rL315874, but clearly i failed to finish verification.
llvm-svn: 315876
|
|
|
|
|
|
|
| |
Previously this broke the builders, when D38101 was committed.
Silence the warning so that it can be re-landed.
llvm-svn: 315874
|
|
|
|
|
|
| |
-Wunused-variable
llvm-svn: 315809
|
|
|
|
| |
llvm-svn: 315582
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D38452
llvm-svn: 315570
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D38628
llvm-svn: 315278
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The vcruntime headers are hairy and clash with both libc++ headers
themselves and other libraries. libc++ normally deals with the clashes
by deferring to the vcruntime headers and silencing its own definitions,
but for clients which don't want to depend on vcruntime headers, it's
desirable to support the opposite, i.e. have libc++ provide its own
definitions.
Certain operator new/delete replacement scenarios are not currently
supported in this mode, which requires some tests to be marked XFAIL.
The added documentation has more details.
Differential Revision: https://reviews.llvm.org/D38522
llvm-svn: 315234
|
|
|
|
|
|
|
|
|
| |
Make it clear that these are intended only to force a specific ABI when
the autodetection would give the wrong result by renaming the cmake
options and adding separate forcing macros, as suggested by EricWF in
the post-commit review of r314949 and further discussed on IRC.
llvm-svn: 314965
|
|
|
|
|
|
| |
Move it to where the other ABI cache variables/options are defined.
llvm-svn: 314950
|
|
|
|
|
|
|
|
|
|
| |
libc++'s current heuristic for detecting Itanium vs. Microsoft ABI falls
short in some cases. For example, it will detect windows-itanium targets
as using the Microsoft ABI, since they set `_MSC_VER` (for compatibility
with Microsoft headers). Leave the current heuristic in place by default
but also allow users to explicitly specify the ABI if need be.
llvm-svn: 314949
|
|
|
|
| |
llvm-svn: 314947
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some ABI macros affect headers, so it's nice to have a site config
option for them. Add a LIBCXX_ABI_DEFINES cmake macro to allow
specifying a list of ABI macros to define in the site config.
The primary design constraint (as discussed with Eric on IRC a while
back) was to not have to repeat the ABI macro names in cmake, which only
leaves a free-form cmake list as an option. A somewhat unfortunate
consequence is that we can't verify that the ABI macros being defined
actually exist, though we can at least perform some basic sanity
checking, since all the ABI macros begin with _LIBCPP_ABI_.
Differential Revision: https://reviews.llvm.org/D36719
llvm-svn: 314946
|
|
|
|
| |
llvm-svn: 314940
|
|
|
|
|
|
|
| |
This patch adds the newly standardized deduction guides
for std::pair, allowing it to work class template deduction.
llvm-svn: 314864
|
|
|
|
| |
llvm-svn: 314755
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously LIT would often fail while attempting to set up/configure
the test compiler; normally when attempting to dump the builtin macros.
This sort of failure provided no useful information about what went
wrong with the compiler, making the actual issues hard --- if not
impossible --- to debug easily.
This patch changes the LIT configuration to report the failure explicitly,
including the failed compile command and the stdout/stderr output.
llvm-svn: 314735
|
|
|
|
|
|
| |
constructor
llvm-svn: 314608
|
|
|
|
|
|
| |
* Don't forbid non-libc++ implementations from strengthening noexcept on forward_list's move constructor.
llvm-svn: 314459
|
|
|
|
| |
llvm-svn: 314259
|
|
|
|
| |
llvm-svn: 314258
|
|
|
|
|
|
|
|
| |
This warning "structure was padded due to alignment specifier" says
that the compiler is going to do exactly what you asked it to do.
It's triggered by the tests for over-aligned dynamic memory allocation.
llvm-svn: 314257
|
|
|
|
| |
llvm-svn: 313803
|
|
|
|
|
|
| |
__independent_bits_engine) as const, since they make no changes to the object. NFC.
llvm-svn: 313789
|