[PATCH] Use __builtin_addressof in std::addressof

François Dumont frs.dumont@gmail.com
Wed Dec 18 18:36:17 GMT 2024


Hi

As proposed on another thread here is the patch to make std::__addressof 
and std::addressof compile time equivalent.

Maybe not entirely because of the [[__nodiscard__]] on std::addressof 
but still closer.

     libstdc++: Have std::addressof use __builtin_addressof

     Rather than calling std::__addressof in std::addressof we can directly
     call __builtin_addressof to bypass 1 function call.

     libstdc++-v3/ChangeLog:

             * include/bits/move.h (std::addressof): Call 
__builtin_addressof.

Ok to commit ?

François
-------------- next part --------------
diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h
index 8397a01b632..421e37509ea 100644
--- a/libstdc++-v3/include/bits/move.h
+++ b/libstdc++-v3/include/bits/move.h
@@ -161,7 +161,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     _GLIBCXX_NODISCARD
     inline _GLIBCXX17_CONSTEXPR _Tp*
     addressof(_Tp& __r) noexcept
-    { return std::__addressof(__r); }
+    { return __builtin_addressof(__r); }
 
   // _GLIBCXX_RESOLVE_LIB_DEFECTS
   // 2598. addressof works on temporaries


More information about the Libstdc++ mailing list