[libcxx-commits] [libcxx] [z/OS][libc++] Guard to be used only when `align_val_t` is available (PR #114396)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Nov 6 09:39:33 PST 2024
================
@@ -75,7 +75,7 @@ class __small_buffer {
template <class _Stored>
_LIBCPP_HIDE_FROM_ABI void __dealloc() noexcept {
if constexpr (!__fits_in_buffer<_Stored>)
- ::operator delete[](*reinterpret_cast<void**>(__buffer_), sizeof(_Stored), align_val_t{alignof(_Stored)});
+ std::__libcpp_deallocate((void*)__buffer_, _BufferSize * sizeof(byte), alignof(_Stored));
----------------
ldionne wrote:
This is incorrect, since you're deallocating the buffer itself (which is a member variable), not the pointer contained in the buffer. The previous `reinterpret_cast` must be kept.
https://github.com/llvm/llvm-project/pull/114396
More information about the libcxx-commits
mailing list