diff --git a/libstdc++-v3/include/parallel/base.h b/libstdc++-v3/include/parallel/base.h
index 5bc5350e72340d2460f35dcb38420b1794cb27a7..fcbcc1e0b996fed8088c7374299b17436aabcc43 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 f25895adbdd2f1c6d4964c1398c98e85206942b2..22bd97e6432b3016eac39272099899c35f30c9b9 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.