[all-commits] [llvm/llvm-project] 1a1773: [libc++] Avoid ODR violations in __exception_guard

philnik777 via All-commits all-commits at lists.llvm.org
Wed Feb 1 17:07:30 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1a17739d3aa78599c32f6106e05dcfa7f3f9e823
      https://github.com/llvm/llvm-project/commit/1a17739d3aa78599c32f6106e05dcfa7f3f9e823
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2023-02-02 (Thu, 02 Feb 2023)

  Changed paths:
    M libcxx/include/__expected/expected.h
    M libcxx/include/__memory/uninitialized_algorithms.h
    M libcxx/include/__memory_resource/polymorphic_allocator.h
    M libcxx/include/__utility/exception_guard.h
    A libcxx/test/libcxx/utilities/exception_guard.odr.sh.cpp

  Log Message:
  -----------
  [libc++] Avoid ODR violations in __exception_guard

Having an ODR violation with `__exception_guard` seems to be problematic in LTO builds. To avoid the ODR violation, give the class different names for exception/no-exceptions mode and have an alias to the correct class.

Reviewed By: ldionne, #libc, alexfh

Spies: aeubanks, dblaikie, joanahalili, alexfh, rupprecht, libcxx-commits

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




More information about the All-commits mailing list