llvm-project/libcxx/test/std/containers/sequences/vector.bool
Eric Fiselier 8cef7fd75a Fix PR37694 - std::vector doesn't correctly move construct allocators.
C++2a[container.requirements.general]p8 states that when move constructing
a container, the allocator is move constructed. Vector previously copy
constructed these allocators. This patch fixes that bug.

Additionally it cleans up some unnecessary allocator conversions
when copy constructing containers. Libc++ uses
__internal_allocator_traits::select_on_copy_construction to select
the correct allocator during copy construction, but it unnecessarily
converted the resulting allocator to the user specified allocator
type and back. After this patch list and forward_list no longer
do that.

Technically we're supposed to be using allocator_traits<allocator_type>::select_on_copy_construction,
but that should seemingly be addressed as a separate patch, if at all.

llvm-svn: 334053
2018-06-05 22:32:52 +00:00
..
assign_copy.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
assign_initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
assign_move.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
capacity.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
construct_default.pass.cpp [libcxx] [test] Untabify, NFC. 2017-07-29 00:55:10 +00:00
construct_iter_iter.pass.cpp [libcxx] [test] D27021: Fix MSVC warning C4389 "signed/unsigned mismatch", part 8/12. 2016-12-06 01:12:34 +00:00
construct_iter_iter_alloc.pass.cpp [libcxx] [test] D27021: Fix MSVC warning C4389 "signed/unsigned mismatch", part 8/12. 2016-12-06 01:12:34 +00:00
construct_size.pass.cpp fix warnings only produced by apple-clang 2016-12-24 01:07:54 +00:00
construct_size_value.pass.cpp Fix vector<bool> tests that were using ints. Patch from STL@microsoft.com 2016-06-14 02:53:04 +00:00
construct_size_value_alloc.pass.cpp Fix vector<bool> tests that were using ints. Patch from STL@microsoft.com 2016-06-14 02:53:04 +00:00
copy.pass.cpp [libcxx] [test] D27269: Fix MSVC x64 warning C4267 "conversion from 'size_t' to 'int' [or 'unsigned int'], possible loss of data", part 3/4. 2016-12-06 01:14:51 +00:00
copy_alloc.pass.cpp [libcxx] [test] D27269: Fix MSVC x64 warning C4267 "conversion from 'size_t' to 'int' [or 'unsigned int'], possible loss of data", part 3/4. 2016-12-06 01:14:51 +00:00
default_noexcept.pass.cpp [libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3. 2017-02-05 22:47:09 +00:00
dtor_noexcept.pass.cpp [libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3. 2017-02-05 22:47:09 +00:00
emplace.pass.cpp [libcxx] [test] Fix MSVC warnings C4127 and C6326 about constants. 2017-01-18 20:09:56 +00:00
emplace_back.pass.cpp [libcxx] [test] Fix MSVC "warning C6326: Potential comparison of a constant with another constant". 2017-05-05 23:38:24 +00:00
empty.fail.cpp First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only 2017-11-15 05:51:26 +00:00
empty.pass.cpp Added tests for xxx.size() and xxx.empty() for all the sequence containers 2017-11-15 01:33:33 +00:00
enabled_hash.pass.cpp Implement P0513R0 - "Poisoning the Hash" 2017-01-21 00:02:12 +00:00
erase_iter.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
erase_iter_iter.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
find.pass.cpp Update all bug URL's to point to https://bugs.llvm.org/... 2017-02-17 08:37:03 +00:00
initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
initializer_list_alloc.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
insert_iter_initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
insert_iter_iter_iter.pass.cpp Enable the -Wsign-compare warning to better support MSVC 2016-12-11 05:31:00 +00:00
insert_iter_size_value.pass.cpp [libcxx] [test] D27016: Fix MSVC warning C4018 "signed/unsigned mismatch", part 4/12. 2016-11-23 22:02:27 +00:00
insert_iter_value.pass.cpp [libcxx] [test] D27016: Fix MSVC warning C4018 "signed/unsigned mismatch", part 4/12. 2016-11-23 22:02:27 +00:00
iterators.pass.cpp [libcxx] [test] Replace _LIBCPP_STD_VER with TEST_STD_VER. 2016-11-04 20:26:59 +00:00
move.pass.cpp Fix PR37694 - std::vector doesn't correctly move construct allocators. 2018-06-05 22:32:52 +00:00
move_alloc.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
move_assign_noexcept.pass.cpp [libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3. 2017-02-05 22:47:09 +00:00
move_noexcept.pass.cpp [libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3. 2017-02-05 22:47:09 +00:00
op_equal_initializer_list.pass.cpp Replace _LIBCPP_HAS_NO_<C++03 feature> with _LIBCPP_CXX03_LANG in vector. 2017-04-16 02:40:45 +00:00
push_back.pass.cpp [libcxx] [test] D27013: Fix MSVC warning C4018 "signed/unsigned mismatch", part 1/12. 2016-11-23 22:01:19 +00:00
reference.swap.pass.cpp [libcxx] [test] Untabify, NFC. 2017-07-29 00:55:10 +00:00
reserve.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
resize_size.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
resize_size_value.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
shrink_to_fit.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
size.pass.cpp Fix copy/paste bug in test where we were putting a '3' into a vector<bool>. NFC. 2017-11-26 00:39:59 +00:00
swap.pass.cpp Fix undefined behavior in container swap tests. 2016-12-11 03:41:12 +00:00
swap_noexcept.pass.cpp [libcxx] [test] Change comments to say C++ instead of c++. NFC. 2017-07-29 00:55:35 +00:00
types.pass.cpp Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER. 2016-06-14 21:31:42 +00:00
vector_bool.pass.cpp [libcxx] [test] Strip trailing whitespace. NFC. 2017-05-04 01:43:58 +00:00