Avoid deprecated warnings about std::auto_ptr in library headers
authorJonathan Wakely <jwakely@redhat.com>
Fri, 21 Apr 2017 13:08:51 +0000 (14:08 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 21 Apr 2017 13:08:51 +0000 (14:08 +0100)
* include/backward/auto_ptr.h: Ignore deprecated warnings from use
of auto_ptr.
* include/bits/shared_ptr.h: Likewise.
* include/bits/shared_ptr_base.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
dg-error lineno.
* libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
* libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
Likewise.
* libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
Likewise.

From-SVN: r247063

libstdc++-v3/ChangeLog
libstdc++-v3/include/backward/auto_ptr.h
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/include/bits/shared_ptr_base.h
libstdc++-v3/include/bits/unique_ptr.h
libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc

index 7fb199875f2764eea730214aa12fd5c0bca537cb..2e587737e8f0dff5a7c890263b33e82fa753b2cb 100644 (file)
@@ -1,3 +1,18 @@
+2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/backward/auto_ptr.h: Ignore deprecated warnings from use
+       of auto_ptr.
+       * include/bits/shared_ptr.h: Likewise.
+       * include/bits/shared_ptr_base.h: Likewise.
+       * include/bits/unique_ptr.h: Likewise.
+       * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
+       dg-error lineno.
+       * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
+       * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
+       Likewise.
+       * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
+       Likewise.
+
 2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
 
        PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
index 9ad1873889b2751107c20f53dea8f1a6ecfa267b..e8aadf2d446f5af061c91cdbefd008f4ed62c544 100644 (file)
@@ -53,6 +53,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
     } _GLIBCXX_DEPRECATED;
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 
   /**
    *  @brief  A simple smart pointer providing strict ownership semantics.
@@ -327,6 +329,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     : _M_t(__u.release(), deleter_type()) { }
 #endif
 
+#pragma GCC diagnostic pop
+
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace
 
index fe933ff2afecd0c2906127c5fdcbcf8631a0225c..2ddb221e2fe1e36d1ac452e9fbdce0ae12f25646 100644 (file)
@@ -266,8 +266,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        : __shared_ptr<_Tp>(__r) { }
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       template<typename _Yp, typename = _Constructible<auto_ptr<_Yp>>>
        shared_ptr(auto_ptr<_Yp>&& __r);
+#pragma GCC diagnostic pop
 #endif
 
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
@@ -304,6 +307,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        }
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       template<typename _Yp>
        _Assignable<auto_ptr<_Yp>>
        operator=(auto_ptr<_Yp>&& __r)
@@ -311,6 +316,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
          this->__shared_ptr<_Tp>::operator=(std::move(__r));
          return *this;
        }
+#pragma GCC diagnostic pop
 #endif
 
       shared_ptr&
index c8d7f20d5d7063112c8c5945abbf128baab322ab..c32cd0f3cf09b725f6f62f94566c76c190b4cb6d 100644 (file)
@@ -62,7 +62,10 @@ namespace std _GLIBCXX_VISIBILITY(default)
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
   template<typename> class auto_ptr;
+#pragma GCC diagnostic pop
 #endif
 
  /**
@@ -639,10 +642,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        }
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       // Special case for auto_ptr<_Tp> to provide the strong guarantee.
       template<typename _Tp>
         explicit
        __shared_count(std::auto_ptr<_Tp>&& __r);
+#pragma GCC diagnostic pop
 #endif
 
       // Special case for unique_ptr<_Tp,_Del> to provide the strong guarantee.
@@ -1179,9 +1185,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       // Postcondition: use_count() == 1 and __r.get() == 0
       template<typename _Yp, typename = _Compatible<_Yp>>
        __shared_ptr(auto_ptr<_Yp>&& __r);
+#pragma GCC diagnostic pop
 #endif
 
       constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { }
@@ -1196,6 +1205,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        }
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       template<typename _Yp>
        _Assignable<_Yp>
        operator=(auto_ptr<_Yp>&& __r)
@@ -1203,6 +1214,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
          __shared_ptr(std::move(__r)).swap(*this);
          return *this;
        }
+#pragma GCC diagnostic pop
 #endif
 
       __shared_ptr&
index a31cd67d6e3fba201b82946270d43273138f890e..92029c25ab5a760ad0a2eb796375f7767c25333e 100644 (file)
@@ -48,7 +48,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    */
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
   template<typename> class auto_ptr;
+#pragma GCC diagnostic pop
 #endif
 
   /// Primary template of default_delete, used by unique_ptr
@@ -254,10 +257,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        { }
 
 #if _GLIBCXX_USE_DEPRECATED
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       /// Converting constructor from @c auto_ptr
       template<typename _Up, typename = _Require<
               is_convertible<_Up*, _Tp*>, is_same<_Dp, default_delete<_Tp>>>>
        unique_ptr(auto_ptr<_Up>&& __u) noexcept;
+#pragma GCC diagnostic pop
 #endif
 
       /// Destructor, invokes the deleter if the stored pointer is not null.
index d8bdf7f05b5e3d4f8c872d0ea366a0df9ee5fb16..33850d5a5453f7715ee3720021c4601ebc153550 100644 (file)
@@ -26,4 +26,4 @@ struct D : B { };
 D d;
 std::default_delete<B[]> db;
 typedef decltype(db(&d)) type; // { dg-error "no match" }
-// { dg-error "no type" "" { target *-*-* } 108 }
+// { dg-error "no type" "" { target *-*-* } 111 }
index db00f81b618ad0a1264734cf7edf790705a2bda3..7709f0c22d5bb91d2936babb6e678121ddd5e9cb 100644 (file)
@@ -25,5 +25,5 @@ void test01()
 {
   std::default_delete<void> d;
   d(nullptr);   // { dg-error "here" }
-  // { dg-error "incomplete" "" { target *-*-* } 74 }
+  // { dg-error "incomplete" "" { target *-*-* } 77 }
 }
index 9000ad98ad8b4e2abef897fbb9cd8687a2688d0e..259282aad06903b20e4d7bb82e6248f7072d0010 100644 (file)
@@ -42,10 +42,10 @@ void f()
   std::unique_ptr<int, D&> ud(nullptr, d);
   ub = std::move(ud); // { dg-error "no match" }
   ub2 = ud; // { dg-error "no match" }
-// { dg-error "no type" "" { target *-*-* } 301 }
+// { dg-error "no type" "" { target *-*-* } 307 }
 
   std::unique_ptr<int[], B&> uba(nullptr, b);
   std::unique_ptr<int[], D&> uda(nullptr, d);
   uba = std::move(uda); // { dg-error "no match" }
-// { dg-error "no type" "" { target *-*-* } 560 }
+// { dg-error "no type" "" { target *-*-* } 566 }
 }
index 8d29c91fd3a45b7eda08d041191b49c447d12e1d..3ef7878ecbed1b266a86c40fbca4084b859796b6 100644 (file)
@@ -39,7 +39,7 @@ test07()
   std::unique_ptr<const A[]> cA3(p); // { dg-error "no matching function" }
   std::unique_ptr<volatile A[]> vA3(p); // { dg-error "no matching function" }
   std::unique_ptr<const volatile A[]> cvA3(p); // { dg-error "no matching function" }
-  // { dg-error "no type" "" { target *-*-* } 467 }
+  // { dg-error "no type" "" { target *-*-* } 473 }
 }
 
 template<typename T>