Re: [libcxx] r278904 - Support allocators with explicit conversion constructors. Fixes bug #29000
On Wed, Aug 17, 2016 at 5:25 PM, Marshall Clowwrote: > On Wed, Aug 17, 2016 at 3:14 PM, Hans Wennborg wrote: >> >> I'd rather not take this actually, as it looks like a large change, >> isn't fixing a regression, and it's time to start wrapping up the >> release. >> > This is actually a pretty small change - almost all the changes are in the > tests. > > I'd like to see it in the release, but I won't be heartbroken if it doesn't > get in. Okay, let's merge it then :-) r279015. Cheers, Hans ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: [libcxx] r278904 - Support allocators with explicit conversion constructors. Fixes bug #29000
On Wed, Aug 17, 2016 at 3:14 PM, Hans Wennborgwrote: > I'd rather not take this actually, as it looks like a large change, > isn't fixing a regression, and it's time to start wrapping up the > release. > > This is actually a pretty small change - almost all the changes are in the tests. I'd like to see it in the release, but I won't be heartbroken if it doesn't get in. -- Marshall ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: [libcxx] r278904 - Support allocators with explicit conversion constructors. Fixes bug #29000
I'd rather not take this actually, as it looks like a large change, isn't fixing a regression, and it's time to start wrapping up the release. On Wed, Aug 17, 2016 at 3:46 AM, Dimitry Andricwrote: > Marshall, this is maybe a good candidate for merging to release_39? > > -Dimitry > >> On 17 Aug 2016, at 07:58, Marshall Clow via cfe-commits >> wrote: >> >> Author: marshall >> Date: Wed Aug 17 00:58:40 2016 >> New Revision: 278904 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=278904=rev >> Log: >> Support allocators with explicit conversion constructors. Fixes bug #29000 >> >> Modified: >>libcxx/trunk/include/map >>libcxx/trunk/include/unordered_map >>libcxx/trunk/test/std/containers/associative/map/map.cons/alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/map/map.cons/compare_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/map/map.cons/copy_alloc.pass.cpp >>libcxx/trunk/test/std/containers/associative/map/map.cons/default.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/map/map.cons/initializer_list_compare_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/map/map.cons/iter_iter_comp_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/compare_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/copy_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/default.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/associative/multiset/multiset.cons/default.pass.cpp >>libcxx/trunk/test/std/containers/associative/set/set.cons/default.pass.cpp >>libcxx/trunk/test/std/containers/sequences/deque/deque.cons/alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp >>libcxx/trunk/test/std/containers/sequences/list/list.cons/default.pass.cpp >> >> libcxx/trunk/test/std/containers/sequences/vector.bool/construct_default.pass.cpp >> >> libcxx/trunk/test/std/containers/sequences/vector/vector.cons/construct_default.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/copy_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal_allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal_allocator.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp >> >> libcxx/trunk/test/std/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp >>libcxx/trunk/test/std/strings/basic.string/string.cons/alloc.pass.cpp >>libcxx/trunk/test/support/min_allocator.h >> >> Modified: libcxx/trunk/include/map >> URL: >> http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=278904=278903=278904=diff >> == >> --- libcxx/trunk/include/map (original) >> +++ libcxx/trunk/include/map Wed Aug 17 00:58:40 2016 >> @@ -873,7 +873,7 @@ public: >> >> _LIBCPP_INLINE_VISIBILITY >> explicit map(const key_compare& __comp, const allocator_type& __a) >> -:
Re: [libcxx] r278904 - Support allocators with explicit conversion constructors. Fixes bug #29000
Marshall, this is maybe a good candidate for merging to release_39? -Dimitry > On 17 Aug 2016, at 07:58, Marshall Clow via cfe-commits >wrote: > > Author: marshall > Date: Wed Aug 17 00:58:40 2016 > New Revision: 278904 > > URL: http://llvm.org/viewvc/llvm-project?rev=278904=rev > Log: > Support allocators with explicit conversion constructors. Fixes bug #29000 > > Modified: >libcxx/trunk/include/map >libcxx/trunk/include/unordered_map >libcxx/trunk/test/std/containers/associative/map/map.cons/alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/map/map.cons/compare_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/map/map.cons/copy_alloc.pass.cpp >libcxx/trunk/test/std/containers/associative/map/map.cons/default.pass.cpp > > libcxx/trunk/test/std/containers/associative/map/map.cons/initializer_list_compare_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/map/map.cons/iter_iter_comp_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/compare_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/copy_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/default.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp > > libcxx/trunk/test/std/containers/associative/multiset/multiset.cons/default.pass.cpp >libcxx/trunk/test/std/containers/associative/set/set.cons/default.pass.cpp >libcxx/trunk/test/std/containers/sequences/deque/deque.cons/alloc.pass.cpp > > libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp >libcxx/trunk/test/std/containers/sequences/list/list.cons/default.pass.cpp > > libcxx/trunk/test/std/containers/sequences/vector.bool/construct_default.pass.cpp > > libcxx/trunk/test/std/containers/sequences/vector/vector.cons/construct_default.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/copy_alloc.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal_allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy_alloc.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal_allocator.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp > > libcxx/trunk/test/std/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp >libcxx/trunk/test/std/strings/basic.string/string.cons/alloc.pass.cpp >libcxx/trunk/test/support/min_allocator.h > > Modified: libcxx/trunk/include/map > URL: > http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=278904=278903=278904=diff > == > --- libcxx/trunk/include/map (original) > +++ libcxx/trunk/include/map Wed Aug 17 00:58:40 2016 > @@ -873,7 +873,7 @@ public: > > _LIBCPP_INLINE_VISIBILITY > explicit map(const key_compare& __comp, const allocator_type& __a) > -: __tree_(__vc(__comp), __a) {} > +: __tree_(__vc(__comp), typename __base::allocator_type(__a)) {} > > template > _LIBCPP_INLINE_VISIBILITY > @@ -888,7 +888,7 @@ public: > _LIBCPP_INLINE_VISIBILITY > map(_InputIterator __f, _InputIterator __l, > const key_compare& __comp, const
[libcxx] r278904 - Support allocators with explicit conversion constructors. Fixes bug #29000
Author: marshall Date: Wed Aug 17 00:58:40 2016 New Revision: 278904 URL: http://llvm.org/viewvc/llvm-project?rev=278904=rev Log: Support allocators with explicit conversion constructors. Fixes bug #29000 Modified: libcxx/trunk/include/map libcxx/trunk/include/unordered_map libcxx/trunk/test/std/containers/associative/map/map.cons/alloc.pass.cpp libcxx/trunk/test/std/containers/associative/map/map.cons/compare_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/map/map.cons/copy_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/map/map.cons/default.pass.cpp libcxx/trunk/test/std/containers/associative/map/map.cons/initializer_list_compare_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/map/map.cons/iter_iter_comp_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/compare_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/copy_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/default.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp libcxx/trunk/test/std/containers/associative/multiset/multiset.cons/default.pass.cpp libcxx/trunk/test/std/containers/associative/set/set.cons/default.pass.cpp libcxx/trunk/test/std/containers/sequences/deque/deque.cons/alloc.pass.cpp libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp libcxx/trunk/test/std/containers/sequences/list/list.cons/default.pass.cpp libcxx/trunk/test/std/containers/sequences/vector.bool/construct_default.pass.cpp libcxx/trunk/test/std/containers/sequences/vector/vector.cons/construct_default.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/copy_alloc.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal_allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy_alloc.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal_allocator.pass.cpp libcxx/trunk/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp libcxx/trunk/test/std/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp libcxx/trunk/test/std/strings/basic.string/string.cons/alloc.pass.cpp libcxx/trunk/test/support/min_allocator.h Modified: libcxx/trunk/include/map URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=278904=278903=278904=diff == --- libcxx/trunk/include/map (original) +++ libcxx/trunk/include/map Wed Aug 17 00:58:40 2016 @@ -873,7 +873,7 @@ public: _LIBCPP_INLINE_VISIBILITY explicit map(const key_compare& __comp, const allocator_type& __a) -: __tree_(__vc(__comp), __a) {} +: __tree_(__vc(__comp), typename __base::allocator_type(__a)) {} template _LIBCPP_INLINE_VISIBILITY @@ -888,7 +888,7 @@ public: _LIBCPP_INLINE_VISIBILITY map(_InputIterator __f, _InputIterator __l, const key_compare& __comp, const allocator_type& __a) -: __tree_(__vc(__comp), __a) +: __tree_(__vc(__comp), typename __base::allocator_type(__a)) { insert(__f, __l); } @@ -955,7 +955,7 @@ public: _LIBCPP_INLINE_VISIBILITY map(initializer_list __il, const key_compare& __comp, const allocator_type& __a) -