From 9e9f42e1382bef50f6773dffbe4c9ab04ce24df5 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Thu, 11 Feb 2016 15:22:37 +0000 Subject: [PATCH] Properly down-cast a sentinal node pointer through void* git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260526 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__hash_table | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/__hash_table b/include/__hash_table index c35c6dfcd..b358d9487 100644 --- a/include/__hash_table +++ b/include/__hash_table @@ -917,6 +917,7 @@ public: typedef typename _NodeTypes::__node_type __node; typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; typedef allocator_traits<__node_allocator> __node_traits; + typedef typename _NodeTypes::__void_pointer __void_pointer; typedef typename _NodeTypes::__node_pointer __node_pointer; typedef typename _NodeTypes::__node_pointer __node_const_pointer; typedef typename _NodeTypes::__node_base_type __first_node; @@ -1955,7 +1956,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const& __node_pointer __pn = __bucket_list_[__chash]; if (__pn == nullptr) { - __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); + __pn = static_cast<__node_pointer>(static_cast<__void_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()))); __h->__next_ = __pn->__next_; __pn->__next_ = __h.get(); // fix up __bucket_list_