From 2407dbe1d887068a13c6ee9b6922560f1c89def5 Mon Sep 17 00:00:00 2001
From: Jason Merrill <jason@redhat.com>
Date: Mon, 23 Sep 2024 23:38:34 -0400
Subject: [PATCH] libstdc++: more #pragma diagnostic

The CI saw failures on 17_intro/headers/c++2011/parallel_mode.cc due to
-Wdeprecated-declarations warnings in some parallel/ headers.

libstdc++-v3/ChangeLog:

	* include/parallel/base.h: Suppress -Wdeprecated-declarations.
	* include/parallel/multiseq_selection.h: Likewise.
---
 libstdc++-v3/include/parallel/base.h               | 4 ++++
 libstdc++-v3/include/parallel/multiseq_selection.h | 6 ++++++
 2 files changed, 10 insertions(+)

diff --git a/libstdc++-v3/include/parallel/base.h b/libstdc++-v3/include/parallel/base.h
index 5bc5350e7234..fcbcc1e0b996 100644
--- a/libstdc++-v3/include/parallel/base.h
+++ b/libstdc++-v3/include/parallel/base.h
@@ -166,6 +166,8 @@ namespace __gnu_parallel
       { return !_M_comp(__a, __b) && !_M_comp(__b, __a); }
     };
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" // *nary_function
 
   /** @brief Similar to std::unary_negate,
    *  but giving the argument types explicitly. */
@@ -297,6 +299,8 @@ namespace __gnu_parallel
     struct _Multiplies<_Tp, _Tp, _Tp>
     : public std::multiplies<_Tp> { };
 
+#pragma GCC diagnostic pop // -Wdeprecated-declarations
+
   /** @brief _Iterator associated with __gnu_parallel::_PseudoSequence.
    *  If features the usual random-access iterator functionality.
    *  @param _Tp Sequence _M_value type.
diff --git a/libstdc++-v3/include/parallel/multiseq_selection.h b/libstdc++-v3/include/parallel/multiseq_selection.h
index f25895adbdd2..22bd97e6432b 100644
--- a/libstdc++-v3/include/parallel/multiseq_selection.h
+++ b/libstdc++-v3/include/parallel/multiseq_selection.h
@@ -48,6 +48,10 @@
 
 namespace __gnu_parallel
 {
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" // *nary_function
+
   /** @brief Compare __a pair of types lexicographically, ascending. */
   template<typename _T1, typename _T2, typename _Compare>
     class _Lexicographic
@@ -100,6 +104,8 @@ namespace __gnu_parallel
       }
     };
 
+#pragma GCC diagnostic pop // -Wdeprecated-declarations
+
   /** 
    *  @brief Splits several sorted sequences at a certain global __rank,
    *  resulting in a splitting point for each sequence.
-- 
GitLab