[gcc r14-7120] libstdc++: Use _GLIBCXX_USE_BUILTIN_TRAIT for _Nth_type

Patrick Palka ppalka@gcc.gnu.org
Thu Jan 11 00:01:30 GMT 2024


https://gcc.gnu.org/g:c84363b8c5c8b545ea922fd2aa12f14f17990815

commit r14-7120-gc84363b8c5c8b545ea922fd2aa12f14f17990815
Author: Patrick Palka <ppalka@redhat.com>
Date:   Wed Jan 10 19:00:49 2024 -0500

    libstdc++: Use _GLIBCXX_USE_BUILTIN_TRAIT for _Nth_type
    
    Since _Nth_type has a fallback native implementation, use
    _GLIBCXX_USE_BUILTIN_TRAIT when checking for __type_pack_element
    so that we can easily toggle which implementation to use.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/utility.h (_Nth_type): Use
            _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.

Diff:
---
 libstdc++-v3/include/bits/utility.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/bits/utility.h b/libstdc++-v3/include/bits/utility.h
index 45d7241da9f..d8a5fb960fe 100644
--- a/libstdc++-v3/include/bits/utility.h
+++ b/libstdc++-v3/include/bits/utility.h
@@ -225,7 +225,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #endif // C++17
 
-#if __has_builtin(__type_pack_element)
+#if _GLIBCXX_USE_BUILTIN_TRAIT(__type_pack_element)
   template<size_t _Np, typename... _Types>
     struct _Nth_type
     { using type = __type_pack_element<_Np, _Types...>; };


More information about the Libstdc++-cvs mailing list