Since std::allocator<void> is not specialized anymore in _GLIBCXX_INLINE_VERSION mode _ExtPtr_allocator<void> specialization do not compile

because std::allocator<void> is incomplete.

So I think primary _ExtPtr_allocator template should also be prefered in _GLIBCXX_INLINE_VERSION mode.

Ok to commit ?

François

diff --git a/libstdc++-v3/include/ext/extptr_allocator.h b/libstdc++-v3/include/ext/extptr_allocator.h
index 7d8aaac7cee..78ee1fa039f 100644
--- a/libstdc++-v3/include/ext/extptr_allocator.h
+++ b/libstdc++-v3/include/ext/extptr_allocator.h
@@ -162,6 +162,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       std::allocator<_Tp>  _M_real_alloc;
     };
 
+#if ! _GLIBCXX_INLINE_VERSION
   // _ExtPtr_allocator<void> specialization.
   template<>
     class _ExtPtr_allocator<void>
@@ -183,6 +184,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     private:
       std::allocator<void>  _M_real_alloc;
     };
+#endif
 
   template<typename _Tp>
     inline void

Reply via email to