[all-commits] [llvm/llvm-project] 6e965d: Revert "Revert "[libc++] ADL-proof <vector> by add...

Quuxplusone via All-commits all-commits at lists.llvm.org
Fri Nov 20 17:59:49 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6e965df6054a4a6be53b3ba9ffa91ec7a0f9d072
      https://github.com/llvm/llvm-project/commit/6e965df6054a4a6be53b3ba9ffa91ec7a0f9d072
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M libcxx/include/__hash_table
    M libcxx/include/__split_buffer
    M libcxx/include/__tree
    M libcxx/include/deque
    M libcxx/include/forward_list
    M libcxx/include/list
    M libcxx/include/memory
    M libcxx/include/string
    M libcxx/include/vector
    A libcxx/test/libcxx/containers/sequences/vector/robust_against_adl.pass.cpp

  Log Message:
  -----------
  Revert "Revert "[libc++] ADL-proof <vector> by adding _VSTD:: qualification on calls.""

This reverts commit 620adacf87a376ec536ccc66af59df5bb4dc3b38.

Fix: unsupport C++03 for the new test, define helpers before __swap_allocator

(1) Add _VSTD:: qualification to __swap_allocator.

(2) Add _VSTD:: qualification consistently to __to_address.

(3) Add some more missing _VSTD:: to <vector>, with a regression test.
This part is cleanup after d9a4f936d05.

Note that a vector whose allocator actually runs afoul of any of these ADL calls will
likely also run afoul of simple things like `v1 == v2` (which is also an ADL call).
But, still, libc++ should be consistent in qualifying function calls wherever possible.

Relevant blog post: https://quuxplusone.github.io/blog/2019/09/26/uglification-doesnt-stop-adl/

Differential Revision: https://reviews.llvm.org/D91708




More information about the All-commits mailing list