| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
UB when overflowing. Also add a UBSAN notification that we're ffine with unsigned overflow. This fixes PR#32617. Thanks to Vincent & Christoph for their help with this issue.
llvm-svn: 343996
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
These deprecation warnings are opt-in: they are only enabled when the
_LIBCXX_DEPRECATION_WARNINGS macro is defined, which is not the case
by default. Note that this is a first step in the right direction, but
I wasn't able to get an exhaustive list of all deprecated components
per standard, so there's certainly stuff that's missing. The list of
components this commit marks as deprecated is:
in C++11:
- auto_ptr, auto_ptr_ref
- binder1st, binder2nd, bind1st(), bind2nd()
- pointer_to_unary_function, pointer_to_binary_function, ptr_fun()
- mem_fun_t, mem_fun1_t, const_mem_fun_t, const_mem_fun1_t, mem_fun()
- mem_fun_ref_t, mem_fun1_ref_t, const_mem_fun_ref_t, const_mem_fun1_ref_t, mem_fun_ref()
in C++14:
- random_shuffle()
in C++17:
- unary_negate, binary_negate, not1(), not2()
<rdar://problem/18168350>
Reviewers: mclow.lists, EricWF
Subscribers: christof, dexonsmith, llvm-commits
Differential Revision: https://reviews.llvm.org/D48912
llvm-svn: 342843
|
| |
|
|
|
|
| |
feature test macros, though. Reviewed as: https://reviews.llvm.org/D51955
llvm-svn: 342073
|
| |
|
|
|
|
| |
swapping an element with itself
llvm-svn: 341975
|
| |
|
|
|
|
|
|
|
|
| |
These algorithms require a ForwardIterator or better. Ensure
we diagnose the contract violation at compile time instead of
of silently doing the wrong thing.
Further algorithms will be audited in upcoming patches.
llvm-svn: 340426
|
| |
|
|
|
|
| |
https://reviews.llvm.org/D50815 - with a fix for the sanitizer bots
llvm-svn: 340045
|
| |
|
|
|
|
|
|
|
|
| |
https://reviews.llvm.org/D50815"
Breaks build on sanitizer bots.
This reverts commit r339943.
llvm-svn: 339971
|
| |
|
|
| |
llvm-svn: 339943
|
| |
|
|
| |
llvm-svn: 337087
|
| |
|
|
|
|
| |
mode. Introduce a new macro _LIBCPP_CONSTEXPR_IF_NODEBUG to mark this.
llvm-svn: 337019
|
| |
|
|
|
|
| |
https://reviews.llvm.org/D42945 ; thanks to Bruce Mitchener for the patch.
llvm-svn: 324378
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to [1], forms 2 and 4 of std::is_permutation should use the passed in
binary predicate to compare elements. operator== should only be used for forms
1 and 3 which do not take a binary predicate.
This CL fixes forms 2 and 4 which relied on operator== for some comparisons.
[1] http://en.cppreference.com/w/cpp/algorithm/is_permutation
Patch by Thomas Anderson!
Differential Revision: https://reviews.llvm.org/D42518
llvm-svn: 323563
|
| |
|
|
| |
llvm-svn: 323159
|
| |
|
|
|
|
| |
remove/remove_if/remove_copy/remove_copy_if/reverse_copy, and tests (commented out) for rotate_copy, because that depends on std::copy
llvm-svn: 323152
|
| |
|
|
|
|
| |
for_each/for_each_n/lexicographical_compare
llvm-svn: 323147
|
| |
|
|
|
|
| |
fill/fill_n/generate/generate_n/unique/unique_copy. I removed a specialization of fill_n that recognized when we were dealing with raw pointers and 1 byte trivially-assignable types and did a memset, because the compiler will do that optimization for us.
llvm-svn: 323050
|
| |
|
|
|
|
| |
replace/replace_if/replace_copy/replace_copy_if.
llvm-svn: 322975
|
| |
|
|
| |
llvm-svn: 322970
|
| |
|
|
| |
llvm-svn: 322566
|
| |
|
|
|
|
| |
binary_search
llvm-svn: 322529
|
| |
|
|
| |
llvm-svn: 322527
|
| |
|
|
|
|
| |
Morwenn noted.
llvm-svn: 322506
|
| |
|
|
| |
llvm-svn: 322504
|
| |
|
|
| |
llvm-svn: 322493
|
| |
|
|
| |
llvm-svn: 322492
|
| |
|
|
|
|
| |
and <utility>. This commit is all the is_XXX algorithms.
llvm-svn: 322489
|
| |
|
|
|
|
| |
not the Boyer-Moore or Boyer-Moore-Horspool searcher (yet). BUT put the BM and BMH tests in place, marked to XFAIL. The other searchers will follow soon
llvm-svn: 322019
|
| |
|
|
|
|
|
|
|
|
| |
The parameter was previously renamed but MSVC path was not updated.
Patch by Andrey Khalyavin.
Differential Revision: https://reviews.llvm.org/D40774
llvm-svn: 319802
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In the CHERI clang compiler __output and __input are keywords and therefore
we can't compile libc++ with our compiler.
Reviewers: mclow.lists, EricWF, theraven
Reviewed By: EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D39537
llvm-svn: 318144
|
| |
|
|
|
|
| |
Yaroshevskiy for both the bug report and the fix.
llvm-svn: 316914
|
| |
|
|
| |
llvm-svn: 313803
|
| |
|
|
|
|
| |
__independent_bits_engine) as const, since they make no changes to the object. NFC.
llvm-svn: 313789
|
| |
|
|
| |
llvm-svn: 313776
|
| |
|
|
|
|
| |
Dörrie for the suggested fix.
llvm-svn: 311952
|
| |
|
|
|
|
|
|
|
| |
Once upon a time, extern templates used to be a Microsoft extension, so
cl would warn about their usage, and libc++ suppressed that warning.
They've long since been standardized, so the warning is defunct. (libc++
also doesn't currently support building with cl anyway.)
llvm-svn: 307997
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch improves how libc++ handles min/max macros within the headers. Previously libc++ would undef them and emit a warning.
This patch changes libc++ to use `#pragma push_macro` to save the macro before undefining it, and `#pragma pop_macro` to restore the macros and the end of the header.
Reviewers: mclow.lists, bcraig, compnerd, EricWF
Reviewed By: EricWF
Subscribers: cfe-commits, krytarowski
Differential Revision: https://reviews.llvm.org/D33080
llvm-svn: 304357
|
| |
|
|
| |
llvm-svn: 304348
|
| |
|
|
| |
llvm-svn: 303862
|
| |
|
|
| |
llvm-svn: 303856
|
| |
|
|
| |
llvm-svn: 303833
|
| |
|
|
|
|
|
|
|
| |
This patch follows up on feedback received in the review for
D32988. Specifically that libc++ should not mess with the
__builtin namespace, and that libc++ should use __popcnt to implement
__pop_count under MSVC.
llvm-svn: 302731
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch refactors and tries to remove as much of the Windows support headers as possible. This is needed because they currently introduce super weird include cycles and dependencies between STL and libc headers.
The changes in this patch are:
* remove `support/win32/support.h` completely. The required parts have either been moved into `support/win32/msvc_support.h` (for `MSVC` only helpers not needed by Clang), or directly into their respective `foo.h` headers.
* Combine `locale_win32.h` and `locale_mgmt_win32.h` into a single headers, this header should only be included within `__locale` or `locale` to avoid include cycles.
* Remove the unneeded parts of `limits_win32.h` and re-name it to `limits_msvc_win32.h` since it's only needed by Clang.
I've tested this patch using Clang on Windows, but I suspect it might technically regress our non-existent support for MSVC. Is somebody able to double check?
This refactor is needed to support upcoming fixes to `<locale>` on Windows.
Reviewers: bcraig, rmaprath, compnerd, EricWF
Reviewed By: EricWF
Subscribers: majnemer, cfe-commits
Differential Revision: https://reviews.llvm.org/D32988
llvm-svn: 302727
|
| |
|
|
| |
llvm-svn: 300625
|
| |
|
|
| |
llvm-svn: 299401
|
| |
|
|
|
|
| |
you cant get it back by defining _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE before including any libc++ headers.
llvm-svn: 298597
|
| |
|
|
|
|
|
|
| |
Windows is greedy and it defines the identifier `__out` as a macro.
This patch renames all conflicting libc++ identifiers in order
to correctly work on Windows.
llvm-svn: 291345
|
| |
|
|
| |
llvm-svn: 290654
|
| |
|
|
| |
llvm-svn: 290459
|
| |
|
|
|
|
|
|
|
| |
The macro _LIBCPP_UNROLL_LOOPS isn't used anywhere
so the code was dead.
Differential Revision: https://reviews.llvm.org/D26991
llvm-svn: 288143
|
| |
|
|
|
|
| |
last week in Issaquah
llvm-svn: 286858
|