[libcxx-commits] [PATCH] D132081: [libc++] Remove __deque_base

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Aug 18 09:20:05 PDT 2022


ldionne requested changes to this revision.
ldionne added a comment.
This revision now requires changes to proceed.

Looks mostly good, but I'd like to see it again before it goes in.



================
Comment at: libcxx/include/deque:1028
+  struct _ConstructTransaction {
+    _ConstructTransaction(deque* __db, __deque_block_range& __r)
+      : __pos_(__r.__begin_), __end_(__r.__end_), __begin_(__r.__begin_), __base_(__db) {}
----------------
We need to spam `_LIBCPP_HIDE_FROM_ABI` here and in other places. Fine to do in a follow-up.


================
Comment at: libcxx/include/deque:1046-1048
+  size_type __start_ = 0;
+  __compressed_pair<size_type, allocator_type> __size_ =
+      __compressed_pair<size_type, allocator_type>(0, __default_init_tag());
----------------
I would not use default member initalizers because that is a potential change in semantics. I'd be fine with the change if it were done in its separate patch where we can focus on the potential effects of it.

In particular, undoing this should force you to really "copy" the definition of the various `__deque_base` constructors, which I can see have changed in the current version of the patch.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132081/new/

https://reviews.llvm.org/D132081



More information about the libcxx-commits mailing list