[all-commits] [llvm/llvm-project] f41f39: [libc++] Fixes operator& hijacking atomic types.

Mark de Wever via All-commits all-commits at lists.llvm.org
Mon Feb 27 10:23:29 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f41f392520935ff78f211f48240c46d6c715fd13
      https://github.com/llvm/llvm-project/commit/f41f392520935ff78f211f48240c46d6c715fd13
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M libcxx/include/__atomic/atomic.h
    M libcxx/include/__atomic/atomic_base.h
    M libcxx/include/__atomic/atomic_sync.h
    M libcxx/include/__atomic/cxx_atomic_impl.h
    A libcxx/test/std/atomics/atomics.types.generic/general.compile.pass.cpp
    A libcxx/test/std/atomics/atomics.types.generic/pointer.compile.pass.cpp
    M libcxx/test/support/operator_hijacker.h

  Log Message:
  -----------
  [libc++] Fixes operator& hijacking atomic types.

This uses std::addressof everywherein atomic. This is not strictly
needed for the integral and floating point specializations. They should
not be used by user defined types. But it's easier to fix everything.

Note these changes are made using a WIP clang-tidy plugin.

Reviewed By: #libc, ldionne

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




More information about the All-commits mailing list