+2020-04-22 Jonathan Wakely <jwakely@redhat.com>
+
+ Backport from mainline
+ 2020-02-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
+ * include/std/deque (__cpp_lib_erase_if): Likewise.
+ * include/std/forward_list (__cpp_lib_erase_if): Likewise.
+ * include/std/list (__cpp_lib_erase_if): Likewise.
+ * include/std/string (__cpp_lib_erase_if): Likewise.
+ * include/std/vector (__cpp_lib_erase_if): Likewise.
+ * include/std/version (__cpp_lib_erase_if): Likewise.
+ * testsuite/21_strings/basic_string/erasure.cc: Test for new value.
+ * testsuite/23_containers/deque/erasure.cc: Likewise.
+ * testsuite/23_containers/forward_list/erasure.cc: Likewise.
+ * testsuite/23_containers/list/erasure.cc: Likewise.
+ * testsuite/23_containers/map/erasure.cc: Likewise.
+ * testsuite/23_containers/set/erasure.cc: Likewise.
+ * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
+ * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
+ * testsuite/23_containers/vector/erasure.cc: Likewise.
+
2020-04-21 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/status_cxx2017.xml: Fix name of feature test macro.
_GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus > 201703L
-# define __cpp_lib_erase_if 201900L
+# define __cpp_lib_erase_if 202002L
#endif
namespace __detail
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_erase_if 201900L
+#define __cpp_lib_erase_if 202002L
template<typename _Tp, typename _Alloc, typename _Predicate>
inline typename deque<_Tp, _Alloc>::size_type
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_erase_if 201900L
+#define __cpp_lib_erase_if 202002L
template<typename _Tp, typename _Alloc, typename _Predicate>
inline typename forward_list<_Tp, _Alloc>::size_type
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_erase_if 201900L
+#define __cpp_lib_erase_if 202002L
template<typename _Tp, typename _Alloc, typename _Predicate>
inline typename list<_Tp, _Alloc>::size_type
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_erase_if 201900L
+#define __cpp_lib_erase_if 202002L
template<typename _CharT, typename _Traits, typename _Alloc,
typename _Predicate>
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_erase_if 201900L
+#define __cpp_lib_erase_if 202002L
template<typename _Tp, typename _Alloc, typename _Predicate>
inline typename vector<_Tp, _Alloc>::size_type
# define __cpp_lib_destroying_delete 201806L
#endif
#define __cpp_lib_endian 201907L
-#define __cpp_lib_erase_if 201900L
+#define __cpp_lib_erase_if 202002L
#define __cpp_lib_interpolate 201902L
#ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED
# define __cpp_lib_is_constant_evaluated 201811L
#include <string>
#include <testsuite_hooks.h>
+#ifndef __cpp_lib_erase_if
+# error "Feature-test macro for erase_if missing in <string>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <string>"
+#endif
+
void
test01()
{
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <deque>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <deque>"
#endif
void
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <forward_list>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <forward_list>"
#endif
void
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <list>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <list>"
#endif
void
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <map>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <map>"
#endif
auto is_odd_pair = [](const std::pair<const int, std::string>& p)
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <set>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <set>"
#endif
auto is_odd = [](const int i) { return i % 2 != 0; };
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <unordered_map>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <unordered_map>"
#endif
auto is_odd_pair = [](const std::pair<const int, std::string>& p)
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <unordered_set>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <unordered_set>"
#endif
void
#include <testsuite_hooks.h>
#ifndef __cpp_lib_erase_if
-# error "Feature-test macro for erase_if missing"
-#elif __cpp_lib_erase_if < 201811
-# error "Feature-test macro for erase_if has wrong value"
+# error "Feature-test macro for erase_if missing in <vector>"
+#elif __cpp_lib_erase_if < 202002
+# error "Feature-test macro for erase_if has wrong value in <vector>"
#endif
void