This fixes a linker warning on darwin, and helps compilation time and object size on all targets by defining the key function in the library, so the vtable and RTTI are only emitted once.
Tested x86_64-linux and powerpc-aix.
commit 8e3b9a3452172033918b80bc69d940538690bfcb Author: Jonathan Wakely <jwak...@redhat.com> Date: Sat May 2 12:26:53 2015 +0100 * include/experimental/fs_path.h (filesystem_error::~filesystem_error): Declare. * src/filesystem/path.cc (filesystem_error::~filesystem_error): Define. diff --git a/libstdc++-v3/include/experimental/fs_path.h b/libstdc++-v3/include/experimental/fs_path.h index 33a16db..d103312 100644 --- a/libstdc++-v3/include/experimental/fs_path.h +++ b/libstdc++-v3/include/experimental/fs_path.h @@ -531,6 +531,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 : system_error(__ec, __what_arg), _M_path1(__p1), _M_path2(__p2) { } + ~filesystem_error(); + const path& path1() const noexcept { return _M_path1; } const path& path2() const noexcept { return _M_path2; } const char* what() const noexcept { return _M_what.c_str(); } diff --git a/libstdc++-v3/src/filesystem/path.cc b/libstdc++-v3/src/filesystem/path.cc index 7924732..a5441b9 100644 --- a/libstdc++-v3/src/filesystem/path.cc +++ b/libstdc++-v3/src/filesystem/path.cc @@ -26,6 +26,8 @@ using std::experimental::filesystem::path; +std::experimental::filesystem::filesystem_error::~filesystem_error() = default; + constexpr path::value_type path::preferred_separator; path&