Procházet zdrojové kódy

AK: Use `__builtin_bit_cast` if available

We now use the compiler's buitin version of bitcast if it's available
instead of just resorting to using the builtin `memcpy`.
Jesse Buhagiar před 3 roky
rodič
revize
2fe5f1528f
1 změnil soubory, kde provedl 4 přidání a 0 odebrání
  1. 4 0
      AK/BitCast.h

+ 4 - 0
AK/BitCast.h

@@ -11,11 +11,15 @@ namespace AK {
 template<typename T, typename U>
 inline T bit_cast(const U& a)
 {
+#if (__has_builtin(__builtin_bit_cast))
+    return __builtin_bit_cast(T, a);
+#else
     static_assert(sizeof(T) == sizeof(U));
 
     T result;
     __builtin_memcpy(&result, &a, sizeof(T));
     return result;
+#endif
 }
 
 }