[gcc/devel/omp/gcc-9] PR libstdc++/91786 fix compilation error with Clang
Tobias Burnus
burnus@gcc.gnu.org
Thu Mar 5 14:31:00 GMT 2020
https://gcc.gnu.org/g:5765ed7aaa5486c6e8eefc569247f58eda355474
commit 5765ed7aaa5486c6e8eefc569247f58eda355474
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Dec 11 13:45:56 2019 +0000
PR libstdc++/91786 fix compilation error with Clang
Backport from mainline
2019-11-25 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/91786
* include/bits/fs_path.h (filesystem_error): Move definition before
the use in u8path.
From-SVN: r279223
Diff:
---
libstdc++-v3/ChangeLog | 9 ++++++
libstdc++-v3/include/bits/fs_path.h | 59 +++++++++++++++++++------------------
2 files changed, 40 insertions(+), 28 deletions(-)
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 40a7116..60f3e34 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2019-12-11 Jonathan Wakely <jwakely@redhat.com>
+
+ Backport from mainline
+ 2019-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/91786
+ * include/bits/fs_path.h (filesystem_error): Move definition before
+ the use in u8path.
+
2019-12-10 Thomas Rodgers <trodgers@redhat.com>
Backport from mainline
diff --git a/libstdc++-v3/include/bits/fs_path.h b/libstdc++-v3/include/bits/fs_path.h
index e56a0a7..5dc624d 100644
--- a/libstdc++-v3/include/bits/fs_path.h
+++ b/libstdc++-v3/include/bits/fs_path.h
@@ -612,6 +612,36 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
size_t hash_value(const path& __p) noexcept;
+ /// Exception type thrown by the Filesystem library
+ class filesystem_error : public std::system_error
+ {
+ public:
+ filesystem_error(const string& __what_arg, error_code __ec);
+
+ filesystem_error(const string& __what_arg, const path& __p1,
+ error_code __ec);
+
+ filesystem_error(const string& __what_arg, const path& __p1,
+ const path& __p2, error_code __ec);
+
+ filesystem_error(const filesystem_error&) = default;
+ filesystem_error& operator=(const filesystem_error&) = default;
+
+ // No move constructor or assignment operator.
+ // Copy rvalues instead, so that _M_impl is not left empty.
+
+ ~filesystem_error();
+
+ const path& path1() const noexcept;
+ const path& path2() const noexcept;
+ const char* what() const noexcept;
+
+ private:
+ struct _Impl;
+ std::__shared_ptr<const _Impl> _M_impl;
+ };
+
+ /// Create a path from a UTF-8-encoded sequence of char
template<typename _InputIterator>
inline auto
u8path(_InputIterator __first, _InputIterator __last)
@@ -642,6 +672,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
#endif
}
+ /// Create a path from a UTF-8-encoded sequence of char
template<typename _Source>
inline auto
u8path(const _Source& __source)
@@ -663,34 +694,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
#endif
}
- class filesystem_error : public std::system_error
- {
- public:
- filesystem_error(const string& __what_arg, error_code __ec);
-
- filesystem_error(const string& __what_arg, const path& __p1,
- error_code __ec);
-
- filesystem_error(const string& __what_arg, const path& __p1,
- const path& __p2, error_code __ec);
-
- filesystem_error(const filesystem_error&) = default;
- filesystem_error& operator=(const filesystem_error&) = default;
-
- // No move constructor or assignment operator.
- // Copy rvalues instead, so that _M_impl is not left empty.
-
- ~filesystem_error();
-
- const path& path1() const noexcept;
- const path& path2() const noexcept;
- const char* what() const noexcept;
-
- private:
- struct _Impl;
- std::__shared_ptr<const _Impl> _M_impl;
- };
-
struct path::_Cmpt : path
{
_Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos)
More information about the Libstdc++-cvs
mailing list