[libcxx-commits] [libcxx] 420a204 - [libc++] Add _LIBCPP_NO_CFI to __make_uninitialized_buffer

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jun 27 15:49:15 PDT 2023


Author: Nikolas Klauser
Date: 2023-06-27T15:48:57-07:00
New Revision: 420a204d52205f1277a8d5df3dbafac6082e02e2

URL: https://github.com/llvm/llvm-project/commit/420a204d52205f1277a8d5df3dbafac6082e02e2
DIFF: https://github.com/llvm/llvm-project/commit/420a204d52205f1277a8d5df3dbafac6082e02e2.diff

LOG: [libc++] Add _LIBCPP_NO_CFI to __make_uninitialized_buffer

CFI doen't allow casting uninitialized memory to a type, resulting in a
crash in `__make_uninitialized_buffer`.

Added: 
    

Modified: 
    libcxx/include/__memory/uninitialized_buffer.h

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__memory/uninitialized_buffer.h b/libcxx/include/__memory/uninitialized_buffer.h
index 8a2cc98904711..daebe61d6b6fa 100644
--- a/libcxx/include/__memory/uninitialized_buffer.h
+++ b/libcxx/include/__memory/uninitialized_buffer.h
@@ -61,7 +61,7 @@ template <class _Array, class _Destructor = __noop>
 using __uninitialized_buffer_t = unique_ptr<_Array, __uninitialized_buffer_deleter<_Destructor> >;
 
 template <class _Array, class _Destructor = __noop>
-_LIBCPP_HIDE_FROM_ABI __uninitialized_buffer_t<_Array, _Destructor>
+_LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_CFI __uninitialized_buffer_t<_Array, _Destructor>
 __make_uninitialized_buffer(nothrow_t, size_t __count, _Destructor __destructor = __noop()) {
   static_assert(is_array<_Array>::value, "");
   using _Tp = __remove_extent_t<_Array>;


        


More information about the libcxx-commits mailing list