Since r12-4065 std::basic_string is always nothrow-move-constructible, so filesystem::path is too. That also means that path::_S_convert(T) is noexcept when returning its argument, because T is either a basci_string or basic_string_view, and will be moved into the return value. libstdc++-v3/ChangeLog: * include/bits/fs_path.h (path(path&&)): Make unconditionally noexcept. (path::_S_convert(T)): Add condtional noexcept. Tested powerpc64le-linux. Committed to trunk.