[libc++] Use std::addressof in std::function::target
authorLouis Dionne <ldionne.2@gmail.com>
Wed, 29 Dec 2021 17:24:45 +0000 (12:24 -0500)
committerLouis Dionne <ldionne.2@gmail.com>
Tue, 4 Jan 2022 17:31:45 +0000 (12:31 -0500)
commite24ddb6027b6495a81c95133cfb6812d6090cd32
tree139613522a17bd8dd697e7c0f76afbc482ec6adc
parent0b09313cd53316eacbdc5e98d4ef00bef2c41d02
[libc++] Use std::addressof in std::function::target

This guards against hostile overloads of operator&. Thanks to Peter Dimov
for the report in https://github.com/boostorg/lambda/issues/24.

Differential Revision: https://reviews.llvm.org/D116380
libcxx/include/__functional/function.h
libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/addressof.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp