| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 284942
|
|
|
|
| |
llvm-svn: 284941
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Fixes PR21597.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25595
llvm-svn: 284881
|
|
|
|
| |
llvm-svn: 284731
|
|
|
|
| |
llvm-svn: 284691
|
|
|
|
|
|
| |
https://reviews.llvm.org/D25534
llvm-svn: 284602
|
|
|
|
| |
llvm-svn: 284333
|
|
|
|
| |
llvm-svn: 284324
|
|
|
|
| |
llvm-svn: 284323
|
|
|
|
| |
llvm-svn: 284322
|
|
|
|
| |
llvm-svn: 284321
|
|
|
|
| |
llvm-svn: 284318
|
|
|
|
| |
llvm-svn: 284316
|
|
|
|
| |
llvm-svn: 284314
|
|
|
|
| |
llvm-svn: 284313
|
|
|
|
| |
llvm-svn: 284310
|
|
|
|
| |
llvm-svn: 284289
|
|
|
|
| |
llvm-svn: 284282
|
|
|
|
| |
llvm-svn: 284225
|
|
|
|
| |
llvm-svn: 284214
|
|
|
|
| |
llvm-svn: 284210
|
|
|
|
| |
llvm-svn: 284209
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch implements the library side of P0035R4. The implementation is thanks to @rsmith.
In addition to the C++17 implementation, the library implementation can be explicitly turned on using `-faligned-allocation` in all dialects.
Reviewers: mclow.lists, rsmith
Subscribers: rsmith, cfe-commits
Differential Revision: https://reviews.llvm.org/D25591
llvm-svn: 284206
|
|
|
|
|
|
| |
std::function. These functions never worked, and as far as I know, no one ever called them.
llvm-svn: 284164
|
|
|
|
| |
llvm-svn: 284120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
On FreeBSD, for ABI compatibility reasons, the pair trivial copy
constructor is disabled, using the aptly-named
`_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR` define.
Disable the related tests when this define is on, so they don't fail
unexpectedly.
Reviewers: emaste, rsmith, theraven, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25449
llvm-svn: 284047
|
|
|
|
| |
llvm-svn: 284006
|
|
|
|
| |
llvm-svn: 284005
|
|
|
|
| |
llvm-svn: 284004
|
|
|
|
| |
llvm-svn: 284002
|
|
|
|
| |
llvm-svn: 283999
|
|
|
|
| |
llvm-svn: 283997
|
|
|
|
| |
llvm-svn: 283996
|
|
|
|
| |
llvm-svn: 283994
|
|
|
|
| |
llvm-svn: 283993
|
|
|
|
| |
llvm-svn: 283991
|
|
|
|
| |
llvm-svn: 283983
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Adapt implementation of Library Fundamentals TS optional into an implementation of N4606 optional.
- Update relational operators per http://wg21.link/P0307
- Update to requirements of http://wg21.link/P0032
- Extension: Implement trivial copy/move construction/assignment for `optional<T>` when `T` is trivially copyable.
Audit P/Rs for optional LWG issues:
- 2756 "C++ WP optional<T> should 'forward' T's implicit conversions" Implemented, which also resolves 2753 "Optional's constructors and assignments need constraints" (modulo my refusal to explicitly delete the move operations, which is a design error that I'm working on correcting in the 2756 P/R).
- 2736 "nullopt_t insufficiently constrained" Already conforming. I've added a test ensuring that `nullopt_t` is not copy-initializable from an empty braced-init-list, which I believe is the root intent of the issue, to avoid regression.
- 2740 "constexpr optional<T>::operator->" Already conforming.
- 2746 "Inconsistency between requirements for emplace between optional and variant" No P/R, but note that the author's '"suggested resolution" is already implemented.
- 2748 "swappable traits for optionals" Already conforming.
- 2753 "Optional's constructors and assignments need constraints" Implemented.
Most of the work for this patch was done by Casey Carter @ Microsoft. Thank you Casey!
Reviewers: mclow.lists, CaseyCarter, EricWF
Differential Revision: https://reviews.llvm.org/D22741
llvm-svn: 283980
|
|
|
|
| |
llvm-svn: 283978
|
|
|
|
|
|
|
|
| |
This patch is largely thanks to Casey Carter @ Microsoft. He did the initial
work of porting our experimental implementation and tests over to namespace
std.
llvm-svn: 283977
|
|
|
|
| |
llvm-svn: 283976
|
|
|
|
| |
llvm-svn: 283975
|
|
|
|
| |
llvm-svn: 283960
|
|
|
|
| |
llvm-svn: 283958
|
|
|
|
|
|
| |
error_code
llvm-svn: 283951
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
FreeBSD ships an old ABI for std::pair which requires that it have non-trivial copy/move constructors. Currently the non-trivial copy/move is achieved by providing explicit definitions of the constructors. This is problematic because it means the constructors don't SFINAE properly. In order to SFINAE copy/move constructors they have to be explicitly defaulted and hense non-trivial.
This patch attempts to provide SFINAE'ing copy/move constructors for std::pair while still making them non-trivial. It does this by adding a base class with a non-trivial copy constructor and then allowing pair's constructors to be generated by the compiler. This also allows the constructors to be constexpr.
Reviewers: emaste, theraven, rsmith, dim
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25389
llvm-svn: 283944
|
|
|
|
| |
llvm-svn: 283941
|
|
|
|
|
|
| |
is LWG#2062, but we already do this. No changes to the library, just adding tests.
llvm-svn: 283780
|
|
|
|
|
|
| |
sure that we keep doing it.
llvm-svn: 283749
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__builtin_addressof was added to the GCC trunk in the past week. This patch
teaches libc++ about it so it can correctly provide constexpr addressof.
Unfortunately this patch will break users of earlier GCC 7 builds, since
we expect __builtin_addressof but one won't be provided. One option would be
to only use __builtin_addressof for GCC 7.1 and above, but that means
waiting for another release.
Instead I've specifically chosen to break older GCC 7 versions. Since GCC 7
has yet to be released, and the 7.0 release is a development release, I
believe that anybody currently using GCC 7.0 will have no issue upgrading.
llvm-svn: 283715
|