From 979f8bfd3164d23e6bd192a00e89eb1fc8f5b4a3 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely
Date: Thu, 25 May 2023 10:06:14 +0100
Subject: [PATCH] libstdc++: Deprecate std::setfill for std::basic_istream
[PR109922]
Prior to N0966 (July 1996) the std::setfill manipulator was specified to
work with both input and output streams. In the final C++98 standard it
is only specified to work with output streams.
We have always supported it for input streams, despite that never being
in the standard, and having no meaning for any input streams defined by
the standard. This commit adds a deprecated attribute to the overload
for input streams, so that we can stop supporting this some day.
libstdc++-v3/ChangeLog:
PR libstdc++/109922
* include/std/iomanip (operator>>(basic_istream&, _Setfill)):
Add deprecated attribute to non-standard overload.
* doc/xml/manual/evolution.xml: Document deprecation.
* doc/html/*: Regenerate.
* testsuite/27_io/manipulators/standard/char/1.cc: Add
dg-warning for expected deprecated warning.
* testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
* testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
* testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
---
libstdc++-v3/doc/html/index.html | 2 +-
libstdc++-v3/doc/html/manual/api.html | 3 +++
libstdc++-v3/doc/html/manual/appendix.html | 2 +-
libstdc++-v3/doc/html/manual/appendix_porting.html | 2 +-
libstdc++-v3/doc/html/manual/index.html | 2 +-
libstdc++-v3/doc/xml/manual/evolution.xml | 9 +++++++++
libstdc++-v3/include/std/iomanip | 2 ++
.../testsuite/27_io/manipulators/standard/char/1.cc | 4 ++--
.../testsuite/27_io/manipulators/standard/char/2.cc | 2 +-
.../testsuite/27_io/manipulators/standard/wchar_t/1.cc | 4 ++--
.../testsuite/27_io/manipulators/standard/wchar_t/2.cc | 2 +-
11 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index ed7021bd4610..414fcacff69e 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -142,7 +142,7 @@
Existing tests
C++11 Requirements Test Sequence Descriptions
-ABI Policy and Guidelines- The C++ Interface
- Versioning
- Goals
- History
- Prerequisites
- Configuring
- Checking Active
- Allowed Changes
- Prohibited Changes
- Implementation
- Testing
- Single ABI Testing
- Multiple ABI Testing
- Outstanding Issues
API Evolution and Deprecation History3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
10
11
12
12.3
13
Backwards Compatibility- First
- Second
- Third
- Pre-ISO headers removed
- Extension headers hash_map, hash_set moved to ext or backwards
- No
ios::nocreate/ios::noreplace
.
+
ABI Policy and Guidelines- The C++ Interface
- Versioning
- Goals
- History
- Prerequisites
- Configuring
- Checking Active
- Allowed Changes
- Prohibited Changes
- Implementation
- Testing
- Single ABI Testing
- Multiple ABI Testing
- Outstanding Issues
API Evolution and Deprecation History3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
10
11
12
12.3
13
14
Backwards Compatibility- First
- Second
- Third
- Pre-ISO headers removed
- Extension headers hash_map, hash_set moved to ext or backwards
- No
ios::nocreate/ios::noreplace
.
-
No
stream::attach(int fd)
-
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index d9857675c78e..7d5f754fb38a 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -476,4 +476,7 @@ and later.
Tunables <variable>glibcxx.eh_pool.obj_count</variable> and
<variable>glibcxx.eh_pool.obj_size</variable> were added.
+
+Deprecate the non-standard overload that allows std::setfill
+to be used with std::basic_istream
.