Followon to r279744. Find the other exception types and make __throw_XXX routines (and call them). Remove the generic __libcpp_throw routine, since no one uses it anymore.
llvm-svn: 279763
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 0fc8cec796387575c0c4a2635ba5579f60deeb75
diff --git a/include/experimental/filesystem b/include/experimental/filesystem
index 0075ad2..7211c6b 100644
--- a/include/experimental/filesystem
+++ b/include/experimental/filesystem
@@ -1176,6 +1176,17 @@
shared_ptr<_Storage> __paths_;
};
+template <class... _Args>
+_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE
+void __throw_filesystem_error(_Args && ...__args)
+{
+#ifndef _LIBCPP_NO_EXCEPTIONS
+ throw filesystem_error(std::forward<_Args>(__args)...);
+#else
+ _VSTD::abort();
+#endif
+}
+
// operational functions
_LIBCPP_FUNC_VIS