diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h
index 916288352d705e3a8f188e371a5d25092e5fec4f..b7e65eb3ca06fde89dec64f4d64d245f156ba2f7 100644
--- a/libstdc++-v3/include/bits/stl_uninitialized.h
+++ b/libstdc++-v3/include/bits/stl_uninitialized.h
@@ -1248,7 +1248,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // Also known as is_trivially_relocatable.
   template<typename _Tp, typename = void>
     struct __is_bitwise_relocatable
-    : __and_<is_trivially_move_constructible<_Tp>, is_trivially_destructible<_Tp>> { };
+    : __bool_constant<__is_trivial(_Tp)>
+    { };
 
   template <typename _InputIterator, typename _ForwardIterator,
 	    typename _Allocator>