aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-01-15 12:01:12 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-01-15 12:01:12 +0000
commit56a9eaf9abc9a7994c7e5f2ec157abace9b96167 (patch)
treefe976a899f0c5d90d9756a0fabc4404ca56b2ad2 /libstdc++-v3
parent04fdd1fdec04e23a19450e4cd0e08d88fa0198ac (diff)
downloadgcc-56a9eaf9abc9a7994c7e5f2ec157abace9b96167.zip
gcc-56a9eaf9abc9a7994c7e5f2ec157abace9b96167.tar.gz
gcc-56a9eaf9abc9a7994c7e5f2ec157abace9b96167.tar.bz2
Fix missing or incorrect feature test macros
* doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2 status. * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms): Define. * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3 changes are supported. * include/std/optional (__cpp_lib_optional): Likewise. * include/std/variant (__cpp_lib_variant): Likewise. * include/std/version [!__STRICT_ANSI__] (__cpp_lib_uncaught_exceptions): Define as long integer. [__cplusplus >= 201703L] (__cpp_lib_any) (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions) (__cpp_lib_variant): Define for C++17. [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define as long integer. * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long integer. From-SVN: r267936
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog18
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx2017.xml25
-rw-r--r--libstdc++-v3/include/bits/stl_uninitialized.h6
-rw-r--r--libstdc++-v3/include/std/any2
-rw-r--r--libstdc++-v3/include/std/optional2
-rw-r--r--libstdc++-v3/include/std/variant2
-rw-r--r--libstdc++-v3/include/std/version8
-rw-r--r--libstdc++-v3/libsupc++/exception4
8 files changed, 58 insertions, 9 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 79c2c34..dbb7d8e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,23 @@
2019-01-15 Jonathan Wakely <jwakely@redhat.com>
+ * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
+ status.
+ * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
+ Define.
+ * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
+ changes are supported.
+ * include/std/optional (__cpp_lib_optional): Likewise.
+ * include/std/variant (__cpp_lib_variant): Likewise.
+ * include/std/version [!__STRICT_ANSI__]
+ (__cpp_lib_uncaught_exceptions): Define as long integer.
+ [__cplusplus >= 201703L] (__cpp_lib_any)
+ (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
+ (__cpp_lib_variant): Define for C++17.
+ [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
+ as long integer.
+ * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
+ integer.
+
* doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
2019-01-12 Jonathan Wakely <jwakely@redhat.com>
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
index 0af8a02..c9913a9 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
@@ -787,6 +787,31 @@ Feature-testing recommendations for C++</link>.
<code> __cpp_lib_to_chars >= 201611 </code></entry>
</row>
+ <row>
+ <entry> Homogeneous interface for variant, any and optional </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf">
+ P0032R3
+ </link>
+ </entry>
+ <entry align="center"> 7.1 </entry>
+ <entry>
+ <code> __cpp_lib_any >= 201606 </code>,
+ <code> __cpp_lib_optional >= 201606 </code>,
+ <code> __cpp_lib_variant >= 201606 </code>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Making Optional Greater Equal Again </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf">
+ P0307R2
+ </link>
+ </entry>
+ <entry align="center"> 7.1 </entry>
+ <entry> <code> __cpp_lib_optional >= 201606 </code> </entry>
+ </row>
</tbody>
</tgroup>
diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h
index a0c574d..664e4ad 100644
--- a/libstdc++-v3/include/bits/stl_uninitialized.h
+++ b/libstdc++-v3/include/bits/stl_uninitialized.h
@@ -826,7 +826,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
-#if __cplusplus > 201402L
+#if __cplusplus >= 201703L
+# define __cpp_lib_raw_memory_algorithms 201606L
+
template <typename _ForwardIterator>
inline void
uninitialized_default_construct(_ForwardIterator __first,
@@ -877,7 +879,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__count, __result);
return {__res.first.base(), __res.second};
}
-#endif
+#endif // C++17
#if __cplusplus >= 201103L
template<typename _Tp, typename _Up, typename _Allocator>
diff --git a/libstdc++-v3/include/std/any b/libstdc++-v3/include/std/any
index 59d2071..385a99c 100644
--- a/libstdc++-v3/include/std/any
+++ b/libstdc++-v3/include/std/any
@@ -66,7 +66,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
}
-#define __cpp_lib_any 201603
+#define __cpp_lib_any 201606L
/**
* @brief A type-safe container of any type.
diff --git a/libstdc++-v3/include/std/optional b/libstdc++-v3/include/std/optional
index c5e66bdd..d243930 100644
--- a/libstdc++-v3/include/std/optional
+++ b/libstdc++-v3/include/std/optional
@@ -51,7 +51,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @{
*/
-#define __cpp_lib_optional 201603
+#define __cpp_lib_optional 201606L
template<typename _Tp>
class optional;
diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index 83cf99e..89deb14 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -68,7 +68,7 @@ namespace __variant
} // namespace __variant
} // namespace __detail
-#define __cpp_lib_variant 201603
+#define __cpp_lib_variant 201606L
template<typename... _Types> class tuple;
template<typename... _Types> class variant;
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index e9a1f12..f49a459 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -39,7 +39,7 @@
#if !defined(__STRICT_ANSI__)
// gnu++03
-# define __cpp_lib_uncaught_exceptions 201411
+# define __cpp_lib_uncaught_exceptions 201411L
#endif
#if __cplusplus >= 201103L
@@ -85,6 +85,7 @@
#if __cplusplus >= 201703L
// c++17
#define __cpp_lib_addressof_constexpr 201603
+#define __cpp_lib_any 201606L
#define __cpp_lib_apply 201603
#define __cpp_lib_array_constexpr 201603
#define __cpp_lib_as_const 201510
@@ -126,7 +127,8 @@
#define __cpp_lib_node_extract 201606
#define __cpp_lib_nonmember_container_access 201411
#define __cpp_lib_not_fn 201603
-#define __cpp_lib_optional 201603
+#define __cpp_lib_optional 201606L
+#define __cpp_lib_raw_memory_algorithms 201606L
#define __cpp_lib_sample 201603
#ifdef _GLIBCXX_HAS_GTHREADS
# define __cpp_lib_scoped_lock 201703
@@ -135,8 +137,10 @@
#define __cpp_lib_shared_ptr_weak_type 201606
#define __cpp_lib_string_view 201603
#define __cpp_lib_type_trait_variable_templates 201510L
+#define __cpp_lib_uncaught_exceptions 201411L
#define __cpp_lib_unordered_map_insertion 201411
#define __cpp_lib_unordered_map_try_emplace 201411
+#define __cpp_lib_variant 201606L
#define __cpp_lib_void_t 201411
#if __cplusplus > 201703L
diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception
index a90d38e..073bfdd 100644
--- a/libstdc++-v3/libsupc++/exception
+++ b/libstdc++-v3/libsupc++/exception
@@ -101,8 +101,8 @@ namespace std
_GLIBCXX17_DEPRECATED
bool uncaught_exception() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));
-#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++17 or gnu++98
-#define __cpp_lib_uncaught_exceptions 201411
+#if __cplusplus >= 201703L || !defined(__STRICT_ANSI__) // c++17 or gnu++98
+#define __cpp_lib_uncaught_exceptions 201411L
/// The number of uncaught exceptions.
int uncaught_exceptions() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));
#endif