aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/include/backward/auto_ptr.h6
-rw-r--r--libstdc++-v3/include/backward/binders.h4
-rw-r--r--libstdc++-v3/include/bits/c++config17
-rw-r--r--libstdc++-v3/include/bits/ios_base.h17
-rw-r--r--libstdc++-v3/include/std/streambuf4
-rw-r--r--libstdc++-v3/include/std/type_traits2
-rw-r--r--libstdc++-v3/testsuite/27_io/types/1.cc13
7 files changed, 45 insertions, 18 deletions
diff --git a/libstdc++-v3/include/backward/auto_ptr.h b/libstdc++-v3/include/backward/auto_ptr.h
index 8511636..0863a08 100644
--- a/libstdc++-v3/include/backward/auto_ptr.h
+++ b/libstdc++-v3/include/backward/auto_ptr.h
@@ -51,7 +51,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
explicit
auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
- } _GLIBCXX_DEPRECATED;
+ } _GLIBCXX11_DEPRECATED;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
@@ -284,7 +284,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp1>
operator auto_ptr<_Tp1>() throw()
{ return auto_ptr<_Tp1>(this->release()); }
- } _GLIBCXX_DEPRECATED;
+ } _GLIBCXX11_DEPRECATED_SUGGEST("std::unique_ptr");
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 541. shared_ptr template assignment and void
@@ -293,7 +293,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
public:
typedef void element_type;
- } _GLIBCXX_DEPRECATED;
+ } _GLIBCXX11_DEPRECATED;
#if __cplusplus >= 201103L
template<_Lock_policy _Lp>
diff --git a/libstdc++-v3/include/backward/binders.h b/libstdc++-v3/include/backward/binders.h
index 8c2c00d..e3029e7 100644
--- a/libstdc++-v3/include/backward/binders.h
+++ b/libstdc++-v3/include/backward/binders.h
@@ -127,7 +127,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typename _Operation::result_type
operator()(typename _Operation::second_argument_type& __x) const
{ return op(value, __x); }
- } _GLIBCXX_DEPRECATED;
+ } _GLIBCXX11_DEPRECATED_SUGGEST("std::bind");
/// One of the @link binders binder functors@endlink.
template<typename _Operation, typename _Tp>
@@ -162,7 +162,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typename _Operation::result_type
operator()(typename _Operation::first_argument_type& __x) const
{ return op(__x, value); }
- } _GLIBCXX_DEPRECATED;
+ } _GLIBCXX11_DEPRECATED_SUGGEST("std::bind");
/// One of the @link binders binder functors@endlink.
template<typename _Operation, typename _Tp>
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index b1fad59..116faf6 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -83,22 +83,37 @@
# define _GLIBCXX_USE_DEPRECATED 1
#endif
-#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
+#if defined(__DEPRECATED)
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
+# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
+ __attribute__ ((__deprecated__ ("use '" ALT "' instead")))
#else
# define _GLIBCXX_DEPRECATED
+# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
+#endif
+
+#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
+# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED
+# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
+#else
+# define _GLIBCXX11_DEPRECATED
+# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT)
#endif
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
+# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
#else
# define _GLIBCXX17_DEPRECATED
+# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT)
#endif
#if defined(__DEPRECATED) && (__cplusplus > 201703L)
# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]]
+# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
#else
# define _GLIBCXX20_DEPRECATED(MSG)
+# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT)
#endif
// Macros for ABI tag attributes.
diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h
index d656254..4ac0265 100644
--- a/libstdc++-v3/include/bits/ios_base.h
+++ b/libstdc++-v3/include/bits/ios_base.h
@@ -471,12 +471,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus <= 201402L
// Annex D.6 (removed in C++17)
- typedef int io_state;
- typedef int open_mode;
- typedef int seek_dir;
-
- typedef std::streampos streampos;
- typedef std::streamoff streamoff;
+ typedef int io_state
+ _GLIBCXX_DEPRECATED_SUGGEST("std::iostate");
+ typedef int open_mode
+ _GLIBCXX_DEPRECATED_SUGGEST("std::openmode");
+ typedef int seek_dir
+ _GLIBCXX_DEPRECATED_SUGGEST("std::seekdir");
+
+ typedef std::streampos streampos
+ _GLIBCXX_DEPRECATED_SUGGEST("std::streampos");
+ typedef std::streamoff streamoff
+ _GLIBCXX_DEPRECATED_SUGGEST("std::streamoff");
#endif
// Callbacks;
diff --git a/libstdc++-v3/include/std/streambuf b/libstdc++-v3/include/std/streambuf
index 3e51236..cae35e7 100644
--- a/libstdc++-v3/include/std/streambuf
+++ b/libstdc++-v3/include/std/streambuf
@@ -784,9 +784,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*
* See http://gcc.gnu.org/ml/libstdc++/2002-05/msg00168.html
*/
-#if __cplusplus >= 201103L
- [[__deprecated__("stossc is deprecated, use sbumpc instead")]]
-#endif
+ _GLIBCXX_DEPRECATED_SUGGEST("std::basic_streambuf::sbumpc")
void
stossc()
{
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index 62f1190..6ced781 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -518,7 +518,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp>
struct __is_nullptr_t
: public is_null_pointer<_Tp>
- { } _GLIBCXX_DEPRECATED;
+ { } _GLIBCXX_DEPRECATED_SUGGEST("std::is_null_pointer");
// Composite type categories.
diff --git a/libstdc++-v3/testsuite/27_io/types/1.cc b/libstdc++-v3/testsuite/27_io/types/1.cc
index 40255ec..a565c20 100644
--- a/libstdc++-v3/testsuite/27_io/types/1.cc
+++ b/libstdc++-v3/testsuite/27_io/types/1.cc
@@ -15,6 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-options "-Wdeprecated" }
// { dg-do compile { target c++14_down } }
// 27.4.2.1 - Types [lib.ios.types]
@@ -26,6 +27,14 @@
// Annex D, deprecated.
void test01()
{
- typedef std::ios_base::streampos streampos_type;
- typedef std::ios_base::streamoff streamoff_type;
+ typedef std::ios_base::streampos streampos_type; // { dg-warning "is deprecated: use 'std::streampos' instead" }
+ typedef std::ios_base::streamoff streamoff_type; // { dg-warning "is deprecated: use 'std::streamoff' instead" }
+}
+
+// Annex D, deprecated.
+void test02()
+{
+ typedef std::ios_base::io_state iostate_type; // { dg-warning "is deprecated: use 'std::iostate' instead" }
+ typedef std::ios_base::open_mode openmode_type; // { dg-warning "is deprecated: use 'std::openmode' instead" }
+ typedef std::ios_base::seek_dir seekdir_type; // { dg-warning "is deprecated: use 'std::seekdir' instead" }
}