[libcxx-commits] [PATCH] D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared
Zoe Carver via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jan 6 16:52:40 PST 2021
zoecarver added inline comments.
================
Comment at: libcxx/include/memory:2626
+ using _CompressedPair = __compressed_pair<_Alloc, _Tp>;
+ struct _ALIGNAS_TYPE(_CompressedPair) _Storage {
+ char __blob_[sizeof(_CompressedPair)];
----------------
Alternatively, you could make `__blob_` a `std::aligned_storage`.
================
Comment at: libcxx/include/memory:2630
+ _LIBCPP_HIDE_FROM_ABI explicit _Storage(_Alloc&& __a) {
+ ::new ((void*)__get_alloc()) _Alloc(_VSTD::move(__a));
+ }
----------------
(This is a new comment, I'm not replying to an old comment, even though that's what it looks like.)
Isn't this UB? `__blob_` is uninitialized when you call `.first()` on it in `__get_alloc()`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91201/new/
https://reviews.llvm.org/D91201
More information about the libcxx-commits
mailing list