[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