aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-04-19 19:02:32 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2016-04-19 19:02:32 +0100
commit9c476ad42618dd03353d8f8ae82b00a945974ecd (patch)
treec7255456e57e2191b9bdcac4f2923dae3a7aaa1f
parentb1e47084d33b547a9bd9a76a0b9e28610908c1d9 (diff)
downloadgcc-9c476ad42618dd03353d8f8ae82b00a945974ecd.zip
gcc-9c476ad42618dd03353d8f8ae82b00a945974ecd.tar.gz
gcc-9c476ad42618dd03353d8f8ae82b00a945974ecd.tar.bz2
Add noexcept to Filesystem TS operators
* include/experimental/bits/fs_fwd.h (operator&, operator|, operator^, operator~ operator&=, operator|=, operator^=): Add noexcept to overloaded operators for copy_options, perms and directory_options. * src/filesystem/ops.cc (make_file_type, make_file_status, is_not_found_errno, file_time): Add noexcept. From-SVN: r235214
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/experimental/bits/fs_fwd.h42
-rw-r--r--libstdc++-v3/src/filesystem/ops.cc8
3 files changed, 33 insertions, 25 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 03d2e99..3562b25 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2016-04-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
+ operator~ operator&=, operator|=, operator^=): Add noexcept to
+ overloaded operators for copy_options, perms and directory_options.
+ * src/filesystem/ops.cc (make_file_type, make_file_status,
+ is_not_found_errno, file_time): Add noexcept.
+
2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/bits/c++14_warning.h: Do not refer C++14 as experimental.
diff --git a/libstdc++-v3/include/experimental/bits/fs_fwd.h b/libstdc++-v3/include/experimental/bits/fs_fwd.h
index 1482e18..57aa4d3 100644
--- a/libstdc++-v3/include/experimental/bits/fs_fwd.h
+++ b/libstdc++-v3/include/experimental/bits/fs_fwd.h
@@ -93,7 +93,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
};
constexpr copy_options
- operator&(copy_options __x, copy_options __y)
+ operator&(copy_options __x, copy_options __y) noexcept
{
using __utype = typename std::underlying_type<copy_options>::type;
return static_cast<copy_options>(
@@ -101,7 +101,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr copy_options
- operator|(copy_options __x, copy_options __y)
+ operator|(copy_options __x, copy_options __y) noexcept
{
using __utype = typename std::underlying_type<copy_options>::type;
return static_cast<copy_options>(
@@ -109,7 +109,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr copy_options
- operator^(copy_options __x, copy_options __y)
+ operator^(copy_options __x, copy_options __y) noexcept
{
using __utype = typename std::underlying_type<copy_options>::type;
return static_cast<copy_options>(
@@ -117,22 +117,22 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr copy_options
- operator~(copy_options __x)
+ operator~(copy_options __x) noexcept
{
using __utype = typename std::underlying_type<copy_options>::type;
return static_cast<copy_options>(~static_cast<__utype>(__x));
}
inline copy_options&
- operator&=(copy_options& __x, copy_options __y)
+ operator&=(copy_options& __x, copy_options __y) noexcept
{ return __x = __x & __y; }
inline copy_options&
- operator|=(copy_options& __x, copy_options __y)
+ operator|=(copy_options& __x, copy_options __y) noexcept
{ return __x = __x | __y; }
inline copy_options&
- operator^=(copy_options& __x, copy_options __y)
+ operator^=(copy_options& __x, copy_options __y) noexcept
{ return __x = __x ^ __y; }
@@ -163,7 +163,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
};
constexpr perms
- operator&(perms __x, perms __y)
+ operator&(perms __x, perms __y) noexcept
{
using __utype = typename std::underlying_type<perms>::type;
return static_cast<perms>(
@@ -171,7 +171,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr perms
- operator|(perms __x, perms __y)
+ operator|(perms __x, perms __y) noexcept
{
using __utype = typename std::underlying_type<perms>::type;
return static_cast<perms>(
@@ -179,7 +179,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr perms
- operator^(perms __x, perms __y)
+ operator^(perms __x, perms __y) noexcept
{
using __utype = typename std::underlying_type<perms>::type;
return static_cast<perms>(
@@ -187,22 +187,22 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr perms
- operator~(perms __x)
+ operator~(perms __x) noexcept
{
using __utype = typename std::underlying_type<perms>::type;
return static_cast<perms>(~static_cast<__utype>(__x));
}
inline perms&
- operator&=(perms& __x, perms __y)
+ operator&=(perms& __x, perms __y) noexcept
{ return __x = __x & __y; }
inline perms&
- operator|=(perms& __x, perms __y)
+ operator|=(perms& __x, perms __y) noexcept
{ return __x = __x | __y; }
inline perms&
- operator^=(perms& __x, perms __y)
+ operator^=(perms& __x, perms __y) noexcept
{ return __x = __x ^ __y; }
// Bitmask type
@@ -211,7 +211,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
};
constexpr directory_options
- operator&(directory_options __x, directory_options __y)
+ operator&(directory_options __x, directory_options __y) noexcept
{
using __utype = typename std::underlying_type<directory_options>::type;
return static_cast<directory_options>(
@@ -219,7 +219,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr directory_options
- operator|(directory_options __x, directory_options __y)
+ operator|(directory_options __x, directory_options __y) noexcept
{
using __utype = typename std::underlying_type<directory_options>::type;
return static_cast<directory_options>(
@@ -227,7 +227,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr directory_options
- operator^(directory_options __x, directory_options __y)
+ operator^(directory_options __x, directory_options __y) noexcept
{
using __utype = typename std::underlying_type<directory_options>::type;
return static_cast<directory_options>(
@@ -235,22 +235,22 @@ _GLIBCXX_END_NAMESPACE_CXX11
}
constexpr directory_options
- operator~(directory_options __x)
+ operator~(directory_options __x) noexcept
{
using __utype = typename std::underlying_type<directory_options>::type;
return static_cast<directory_options>(~static_cast<__utype>(__x));
}
inline directory_options&
- operator&=(directory_options& __x, directory_options __y)
+ operator&=(directory_options& __x, directory_options __y) noexcept
{ return __x = __x & __y; }
inline directory_options&
- operator|=(directory_options& __x, directory_options __y)
+ operator|=(directory_options& __x, directory_options __y) noexcept
{ return __x = __x | __y; }
inline directory_options&
- operator^=(directory_options& __x, directory_options __y)
+ operator^=(directory_options& __x, directory_options __y) noexcept
{ return __x = __x ^ __y; }
typedef chrono::time_point<chrono::system_clock> file_time_type;
diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc
index c32197e..756e140 100644
--- a/libstdc++-v3/src/filesystem/ops.cc
+++ b/libstdc++-v3/src/filesystem/ops.cc
@@ -249,7 +249,7 @@ namespace
typedef struct ::stat stat_type;
inline fs::file_type
- make_file_type(const stat_type& st)
+ make_file_type(const stat_type& st) noexcept
{
using fs::file_type;
#ifdef _GLIBCXX_HAVE_S_ISREG
@@ -273,7 +273,7 @@ namespace
}
inline fs::file_status
- make_file_status(const stat_type& st)
+ make_file_status(const stat_type& st) noexcept
{
return fs::file_status{
make_file_type(st),
@@ -282,13 +282,13 @@ namespace
}
inline bool
- is_not_found_errno(int err)
+ is_not_found_errno(int err) noexcept
{
return err == ENOENT || err == ENOTDIR;
}
inline fs::file_time_type
- file_time(const stat_type& st)
+ file_time(const stat_type& st) noexcept
{
using namespace std::chrono;
return fs::file_time_type{