[PATCH] Fix __gnu_debug::basic_string

François Dumont frs.dumont@gmail.com
Mon Mar 8 21:04:10 GMT 2021


__gnu_debug::basic_string is not extensively used nor extensively tested 
so not actively maintained.

So here is a first patch to fix some problems and increase test 
coverage. I plan another patch cause I think it is missing some C++17 
methods.

Tested under Linux x86_64, ok to commit ?

     libstdc++: Fix __gnu_debug::basic_string<> and adapt tests

     libstdc++-v3/ChangeLog:

             * include/debug/string
             (basic_string(const basic_string&, const _Alloc&)): Define 
even if !_GLIBCXX_USE_CXX11_ABI.
             (basic_string(basic_string&&, const _Alloc&)): Likewise and 
add noexcept qualification.
             (basic_string<>::erase): Adapt to take __const_iterator.
             * 
testsuite/21_strings/basic_string/requirements/citerators.cc: Adapt to 
test __gnu_debug::string
             when _GLIBCXX_DEBUG is defined.
             * 
testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
             * 
testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc: 
Likewise.
             * 
testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
             * testsuite/util/exception/safety.h
             * testsuite/util/testsuite_container_traits.h

François

-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug_string.patch
Type: text/x-patch
Size: 15311 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20210308/bfd7fa27/attachment.bin>


More information about the Libstdc++ mailing list