[libcxx-commits] [PATCH] D93424: [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls.

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Dec 16 15:32:23 PST 2020


Quuxplusone created this revision.
Quuxplusone added a reviewer: ldionne.
Quuxplusone added a project: libc++.
Herald added a subscriber: kristof.beyls.
Quuxplusone requested review of this revision.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

This affects only vectors with weird/malicious allocators, the same corner case covered in D91708 <https://reviews.llvm.org/D91708>, but for `vector<bool>` this time.

Also ADL-proof <__tree>, which affects only sets and maps with weird/malicious allocators where the ADL trap is in the **fancy pointer type**.

Also drive-by _VSTD:: qualification in the guts of std::bind, std::packaged_task, std::condition_variable.

I think this is likely the last of my ADL-proofing patches for a while; I know I've left some harmless (primitive-type-only) helpers in <locale> and <charconv>, but basically everything is ADL-proofed that can be, now, AFAIK. After this I'll probably spend a little time looking at constexpr algorithms again.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D93424

Files:
  libcxx/include/__bit_reference
  libcxx/include/__mutex_base
  libcxx/include/__tree
  libcxx/include/array
  libcxx/include/bitset
  libcxx/include/functional
  libcxx/include/future
  libcxx/include/iomanip
  libcxx/include/mutex
  libcxx/test/libcxx/containers/sequences/vector/robust_against_adl.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93424.312314.patch
Type: text/x-patch
Size: 25134 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201216/ecdc784f/attachment-0001.bin>


More information about the libcxx-commits mailing list