[libcxx-commits] [libcxx] 35c3b53 - [libc++] ADL-proof __libcpp_is_nothrow_constructible.

Arthur O'Dwyer via libcxx-commits libcxx-commits at lists.llvm.org
Tue Dec 8 14:06:42 PST 2020


Author: Arthur O'Dwyer
Date: 2020-12-08T17:05:38-05:00
New Revision: 35c3b539438be2d587cbe8f2b9604a68bbe7792b

URL: https://github.com/llvm/llvm-project/commit/35c3b539438be2d587cbe8f2b9604a68bbe7792b
DIFF: https://github.com/llvm/llvm-project/commit/35c3b539438be2d587cbe8f2b9604a68bbe7792b.diff

LOG: [libc++] ADL-proof __libcpp_is_nothrow_constructible.

The GCC C++20 buildbot hit this ADL call; Clang doesn't,
presumably because it uses a compiler builtin instead of
this codepath in <type_traits>.
https://buildkite.com/llvm-project/libcxx-ci/builds/674

Added: 
    

Modified: 
    libcxx/include/type_traits

Removed: 
    


################################################################################
diff  --git a/libcxx/include/type_traits b/libcxx/include/type_traits
index cd6a1633df80..2842c905e302 100644
--- a/libcxx/include/type_traits
+++ b/libcxx/include/type_traits
@@ -1821,7 +1821,7 @@ template <typename _Tp>
 static void __test_noexcept(_Tp) noexcept;
 
 template<typename _Fm, typename _To>
-static bool_constant<noexcept(__test_noexcept<_To>(declval<_Fm>()))>
+static bool_constant<noexcept(_VSTD::__test_noexcept<_To>(declval<_Fm>()))>
 __is_nothrow_convertible_test();
 
 template <typename _Fm, typename _To>
@@ -3293,7 +3293,7 @@ void __implicit_conversion_to(_Tp) noexcept { }
 
 template <class _Tp, class _Arg>
 struct __libcpp_is_nothrow_constructible</*is constructible*/true, /*is reference*/true, _Tp, _Arg>
-    : public integral_constant<bool, noexcept(__implicit_conversion_to<_Tp>(declval<_Arg>()))>
+    : public integral_constant<bool, noexcept(_VSTD::__implicit_conversion_to<_Tp>(declval<_Arg>()))>
 {
 };
 


        


More information about the libcxx-commits mailing list