Re: [libcxx] r278904 - Support allocators with explicit conversion constructors. Fixes bug #29000

2016-08-17 Thread Hans Wennborg via cfe-commits
On Wed, Aug 17, 2016 at 5:25 PM, Marshall Clow  wrote:
> 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

2016-08-17 Thread Marshall Clow via cfe-commits
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.

-- 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

2016-08-17 Thread Hans Wennborg via cfe-commits
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 Andric  wrote:
> 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

2016-08-17 Thread Dimitry Andric via cfe-commits
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

2016-08-17 Thread Marshall Clow via cfe-commits
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)
-