===================================================================
@@ -444,7 +444,7 @@
/// is_fundamental
template<typename _Tp>
struct is_fundamental
- : public __or_<is_arithmetic<_Tp>, is_void<_Tp>>::type
+ : public __or_<is_arithmetic<_Tp>, is_void<_Tp>, __is_nullptr_t<_Tp>>::type
{ };
/// is_object
===================================================================
@@ -46,6 +46,9 @@
VERIFY( (test_category<is_compound, double>(false)) );
VERIFY( (test_category<is_compound, long double>(false)) );
+ // libstdc++/56609
+ VERIFY( (test_category<is_compound, std::nullptr_t>(false)) );
+
// Sanity check.
VERIFY( (test_category<is_compound, ClassType>(true)) );
}
===================================================================
@@ -46,6 +46,9 @@
VERIFY( (test_category<is_fundamental, double>(true)) );
VERIFY( (test_category<is_fundamental, long double>(true)) );
+ // libstdc++/56609
+ VERIFY( (test_category<is_fundamental, std::nullptr_t>(true)) );
+
// Sanity check.
VERIFY( (test_category<is_fundamental, ClassType>(false)) );
}