libstdc++: Add std::time_get %r support [PR71367]
authorJakub Jelinek <jakub@redhat.com>
Fri, 10 Dec 2021 16:05:04 +0000 (17:05 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 10 Dec 2021 16:05:04 +0000 (17:05 +0100)
commit982a2c9b7866558039df61b0596caad57c94c8c4
tree8613ba3bc90cf1910651da98e5e2239e5d8800b7
parentc82e492616e343b6d6db218d2b498267bac899de
libstdc++: Add std::time_get %r support [PR71367]

This incremental patch adds std::time_get %r support (%p was added already
in the previous patch).  The _M_am_fm_format method previously in the header
unfortunately had wrong arguments and so was useless, so the largest
complication in this patch is exporting a new symbol in the right symbol
version.

2021-12-10  Jakub Jelinek  <jakub@redhat.com>

PR libstdc++/71367
* config/locale/dragonfly/time_members.cc (_M_initialize_timepunct):
Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty
string.
* config/locale/gnu/time_members.cc (_M_initialize_timepunct):
Likewise.
* config/locale/generic/time_members.cc (_M_initialize_timepunct):
Likewise.
* include/bits/locale_facets_nonio.h (_M_am_pm_format): New method.
* include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle
%r.
* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format
with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4.
* testsuite/22_locale/time_get/get/char/71367.cc: New test.
* testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test.
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/config/locale/dragonfly/time_members.cc
libstdc++-v3/config/locale/generic/time_members.cc
libstdc++-v3/config/locale/gnu/time_members.cc
libstdc++-v3/include/bits/locale_facets_nonio.h
libstdc++-v3/include/bits/locale_facets_nonio.tcc
libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc [new file with mode: 0644]