Message ID | 20230531122212.4116815-1-jwakely@redhat.com |
---|---|
State | New |
Headers | show |
Series | [committed] libstdc++: Deprecate std::setfill for std::basic_istream [PR109922] | expand |
diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml index a29e4df3822..4037a18d2df 100644 --- a/libstdc++-v3/doc/xml/manual/evolution.xml +++ b/libstdc++-v3/doc/xml/manual/evolution.xml @@ -1089,4 +1089,13 @@ Tunables <variable>glibcxx.eh_pool.obj_count</variable> and </section> +<section xml:id="api.rel_141"><info><title><constant>14</constant></title></info> + +<para> +Deprecate the non-standard overload that allows <code>std::setfill</code> +to be used with <code>std::basic_istream</code>. +</para> + +</section> + </section> diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip index 5c0fb09a60e..eb82fc584b6 100644 --- a/libstdc++-v3/include/std/iomanip +++ b/libstdc++-v3/include/std/iomanip @@ -168,6 +168,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return { __c }; } template<typename _CharT, typename _Traits> + __attribute__((__deprecated__("'std::setfill' should only be used with " + "output streams"))) inline basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f) { diff --git a/libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc b/libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc index d3eba45aac1..4da43200fe5 100644 --- a/libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc @@ -51,9 +51,9 @@ test01() oss << setbase(8); VERIFY(oss.good()); - // setfil + // setfill setfill('a'); - iss >> setfill('a'); + iss >> setfill('a'); // { dg-warning "deprecated" } VERIFY(iss.good()); oss << setfill('a'); VERIFY(oss.good()); diff --git a/libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc b/libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc index dc74e1983c7..9acc057ccbb 100644 --- a/libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc +++ b/libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc @@ -40,7 +40,7 @@ test01() sin >> resetiosflags(ios_base::dec) >> setiosflags(ios_base::dec) >> setbase(ios_base::dec) - >> setfill('c') + >> setfill('c') // { dg-warning "deprecated" } >> setprecision(5) >> setw(20) >> ws; diff --git a/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc index 0c27e8b126a..ebfab0cc732 100644 --- a/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc @@ -51,9 +51,9 @@ test01() oss << setbase(8); VERIFY(oss.good()); - // setfil + // setfill setfill(L'a'); - iss >> setfill(L'a'); + iss >> setfill(L'a'); // { dg-warning "deprecated" } VERIFY(iss.good()); oss << setfill(L'a'); VERIFY(oss.good()); diff --git a/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc index 509c152a6d7..78b812d4288 100644 --- a/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc +++ b/libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc @@ -40,7 +40,7 @@ test01() sin >> resetiosflags(ios_base::dec) >> setiosflags(ios_base::dec) >> setbase(ios_base::dec) - >> setfill(L'c') + >> setfill(L'c') // { dg-warning "deprecated" } >> setprecision(5) >> setw(20) >> ws;