diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -763,14 +763,6 @@ # Use the ISO conforming behaviour for conversion # in printf, scanf. _CRT_STDIO_ISO_WIDE_SPECIFIERS) - # Clang-cl shared builds don't support the experimental library. - # To avoid linker errors the format_error destructor is inlined for the - # dylib. Users can never use format in this mode. - # TODO FMT Remove when format becomes mainline. - if (LIBCXX_ENABLE_SHARED) - target_compile_definitions(${target} PRIVATE - _LIBCPP_INLINE_FORMAT_ERROR_DTOR) - endif() endif() endfunction() diff --git a/libcxx/include/__format/format_error.h b/libcxx/include/__format/format_error.h --- a/libcxx/include/__format/format_error.h +++ b/libcxx/include/__format/format_error.h @@ -28,14 +28,8 @@ : runtime_error(__s) {} _LIBCPP_HIDE_FROM_ABI explicit format_error(const char* __s) : runtime_error(__s) {} - // TODO FMT Remove when format is no longer experimental. - // Avoids linker errors when building the Clang-cl Windows DLL which doesn't - // support the experimental library. -# ifndef _LIBCPP_INLINE_FORMAT_ERROR_DTOR - ~format_error() noexcept override; -# else - ~format_error() noexcept override {} -# endif + _LIBCPP_HIDE_FROM_ABI_VIRTUAL + ~format_error() noexcept override = default; }; _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt --- a/libcxx/src/CMakeLists.txt +++ b/libcxx/src/CMakeLists.txt @@ -311,7 +311,6 @@ set(LIBCXX_EXPERIMENTAL_SOURCES experimental/memory_resource.cpp - format.cpp ) add_library(cxx_experimental STATIC ${LIBCXX_EXPERIMENTAL_SOURCES}) diff --git a/libcxx/src/format.cpp b/libcxx/src/format.cpp deleted file mode 100644 --- a/libcxx/src/format.cpp +++ /dev/null @@ -1,17 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include - -_LIBCPP_BEGIN_NAMESPACE_STD - -#ifndef _LIBCPP_INLINE_FORMAT_ERROR_DTOR -format_error::~format_error() noexcept = default; -#endif - -_LIBCPP_END_NAMESPACE_STD