summaryrefslogtreecommitdiffstats
path: root/libcxx
Commit message (Collapse)AuthorAgeFilesLines
...
* [libc++] Don't alias quick_exit if __ANDROID_API__ < 21Dan Albert2017-11-011-1/+5
| | | | | | | | | | | | | | | | | | | | 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
* More statuses, a new patch, tooMarshall Clow2017-11-011-11/+11
| | | | llvm-svn: 317074
* Update the synopsis to match the P/R of 2945. No code changes.Marshall Clow2017-11-011-6/+6
| | | | llvm-svn: 317063
* Fix broken links; update more issues.Marshall Clow2017-10-311-35/+35
| | | | llvm-svn: 316970
* Add a fail test for aligned_union of an incomplete type. See LWG#2979. NFCMarshall Clow2017-10-311-0/+23
| | | | llvm-svn: 316969
* Add more fuzzing bits: partial_sort_copy, partition_copy, unique, ↵Marshall Clow2017-10-307-18/+360
| | | | | | unique_copy. No functional change to libc++; this is all test infastructure llvm-svn: 316951
* Implement LWG 3013 - some filesystem members should not be noexcept.Eric Fiselier2017-10-307-32/+43
| | | | | | | | | | | | | | | 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
* Fix PR35078 - recursive directory iterator's increment method throws ↵Eric Fiselier2017-10-302-9/+274
| | | | | | | | | | | | | | 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
* Mark test as unsupported on C++98/03, since it uses move_iteratorMarshall Clow2017-10-301-0/+2
| | | | llvm-svn: 316917
* Fix PR#35119 : set_union misbehaves with move_iterators. Thanks to Denis ↵Marshall Clow2017-10-302-1/+45
| | | | | | Yaroshevskiy for both the bug report and the fix. llvm-svn: 316914
* Initial triageMarshall Clow2017-10-291-16/+16
| | | | llvm-svn: 316874
* Update status of 2950Marshall Clow2017-10-291-4/+4
| | | | llvm-svn: 316873
* Issues to be voted on in ABQMarshall Clow2017-10-291-31/+50
| | | | llvm-svn: 316867
* Mark string_view's constructor from (ptr,len) as noexcept (an extension). ↵Marshall Clow2017-10-245-4/+16
| | | | | | Update the tests to check this (and other noexcept bits llvm-svn: 316456
* Mark string_view literals as 'noexcept'. Fixes PR#25054. Thanks to Pavel K ↵Marshall Clow2017-10-242-8/+14
| | | | | | for the bug report. llvm-svn: 316439
* More fuzzing interfacesMarshall Clow2017-10-233-20/+145
| | | | llvm-svn: 316394
* Fix misguided error message in debug mode. No functional change. Fixes PR#34966Marshall Clow2017-10-231-1/+1
| | | | llvm-svn: 316343
* Fix an unsigned integer overflow in regex that lead to a bad memory access. ↵Marshall Clow2017-10-192-5/+12
| | | | | | Found by OSS-Fuzz llvm-svn: 316191
* Fix UB - signed integer overflow in regex. Thanks to Tim Shen for the patch. ↵Marshall Clow2017-10-192-0/+42
| | | | | | Reviewed as https://reviews.llvm.org/D39066 llvm-svn: 316172
* Fix a think-o in the design of the stable_XXX sort tests; only shows up for ↵Marshall Clow2017-10-181-2/+2
| | | | | | test cases > 255 elements llvm-svn: 316125
* Fix regex bug with ^\W. Thanks to Tim Shen for the patch. Reviewed as ↵Marshall Clow2017-10-182-12/+47
| | | | | | https://reviews.llvm.org/D37955 llvm-svn: 316095
* Refactor std::list node allocation logic.Eric Fiselier2017-10-171-33/+23
| | | | | | | | | | | | 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
* fix shadowing warnings in new tests, try 2Eric Fiselier2017-10-171-2/+2
| | | | llvm-svn: 316009
* fix shadowing warnings in new testsEric Fiselier2017-10-171-3/+3
| | | | llvm-svn: 315997
* Refactor _LIBCPP_<LITTLE|BIG>_ENDIANEric Fiselier2017-10-172-35/+22
| | | | | | | | | | 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
* [libc++] Fix PR34898 - vector iterator constructors and assign method ↵Eric Fiselier2017-10-1712-74/+795
| | | | | | | | | | | | | | | | | | | | | | | 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
* Fix last_write_time.pass.cpp to work with clang-3.9 and earlierRoman Lebedev2017-10-151-0/+2
| | | | | | At least with clang-3.9 and earlier, -Wunknown-pragmas is also needed. llvm-svn: 315882
* Really do make sure that last_write_time.pass.cpp still works with old clangRoman Lebedev2017-10-151-2/+6
| | | | | | | 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
* Silence clang's -Wtautological-constant-compare in last_write_time.pass.cppRoman Lebedev2017-10-151-0/+22
| | | | | | | Previously this broke the builders, when D38101 was committed. Silence the warning so that it can be re-landed. llvm-svn: 315874
* Placate unused variable warnings uncovered by improvements to clang's ↵Benjamin Kramer2017-10-1421-0/+28
| | | | | | -Wunused-variable llvm-svn: 315809
* More fuzzing infastructre - regexMarshall Clow2017-10-128-3/+287
| | | | llvm-svn: 315582
* Mark test as a long-testRoger Ferrer Ibanez2017-10-121-0/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D38452 llvm-svn: 315570
* Remove unneeded typename from testRoger Ferrer Ibanez2017-10-102-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D38628 llvm-svn: 315278
* [libc++] Support Microsoft ABI without vcruntime headersShoaib Meenai2017-10-0912-27/+137
| | | | | | | | | | | | | | | | | 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
* [libc++] Clarify names of ABI forcing macrosShoaib Meenai2017-10-053-9/+15
| | | | | | | | | 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
* [libc++] Move cache variable definition. NFCShoaib Meenai2017-10-041-1/+1
| | | | | | Move it to where the other ABI cache variables/options are defined. llvm-svn: 314950
* [libc++] Allow users to explicitly specify ABIShoaib Meenai2017-10-043-5/+19
| | | | | | | | | | 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
* Fix accidental assignment inside test assertsEric Fiselier2017-10-042-2/+2
| | | | llvm-svn: 314947
* [libc++] Add site config option for ABI macrosShoaib Meenai2017-10-044-1/+23
| | | | | | | | | | | | | | | | | 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
* Initial cut at infastructure for fuzzing support for OSS-fuzzMarshall Clow2017-10-048-0/+483
| | | | llvm-svn: 314940
* Add C++17 explicit deduction guides to std::pair.Eric Fiselier2017-10-044-4/+90
| | | | | | | This patch adds the newly standardized deduction guides for std::pair, allowing it to work class template deduction. llvm-svn: 314864
* Fix test suite misconfiguration on OS XEric Fiselier2017-10-031-2/+2
| | | | llvm-svn: 314755
* Improve test runner output for broken configurations.Eric Fiselier2017-10-022-6/+16
| | | | | | | | | | | | | 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
* [test] Allow other implementations to strengthen noexcept on deque's move ↵Casey Carter2017-09-301-1/+1
| | | | | | constructor llvm-svn: 314608
* [test] forwardlist.cons/move_noexcept.pass.cppCasey Carter2017-09-281-1/+1
| | | | | | * Don't forbid non-libc++ implementations from strengthening noexcept on forward_list's move constructor. llvm-svn: 314459
* [libcxx] [test] Fix unused local typedef warnings.Stephan T. Lavavej2017-09-261-2/+2
| | | | llvm-svn: 314259
* [libcxx] [test] Strip trailing whitespace.Stephan T. Lavavej2017-09-261-1/+1
| | | | llvm-svn: 314258
* [libcxx] [test] Silence warning C4324 for MSVC.Stephan T. Lavavej2017-09-261-0/+1
| | | | | | | | 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
* Revert 313789 because gcc doesn't like itMarshall Clow2017-09-202-8/+8
| | | | llvm-svn: 313803
* Mark the __eval methods on independent_bits_engine (and ↵Marshall Clow2017-09-202-8/+8
| | | | | | __independent_bits_engine) as const, since they make no changes to the object. NFC. llvm-svn: 313789
OpenPOWER on IntegriCloud