[PATCH][_GLIBCXX_DEBUG][__cplusplus >= 201103L] Remove useless workaround

Jonathan Wakely jwakely@redhat.com
Wed Mar 18 18:07:11 GMT 2026


On Wed, 18 Mar 2026 at 16:41, Tomasz Kaminski <tkaminsk@redhat.com> wrote:
>
>
>
> On Mon, Mar 9, 2026 at 12:04 PM Tomasz Kaminski <tkaminsk@redhat.com> wrote:
>>
>> I believe, this caused failure 21_strings/basic_string/requirements/dr438/constructor.c in C++20 mode::
>> In file included from /home/tkaminsk/build/gcc/16/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/functions.h:39,
>>                  from /home/tkaminsk/build/gcc/16/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/safe_sequence.h:34,
>>                  from /home/tkaminsk/build/gcc/16/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/string:37,
>>                  from /home/tkaminsk/src/gcc/libstdc++-v3/testsuite/21_strings/basic_string/requirements/dr438/constructor.cc:23:
>> /home/tkaminsk/build/gcc/16/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/helper_functions.h: In instantiation of 'constexpr bool __gnu_debug::__valid_range(_InputIterator, _InputIterator) [with _InputIterator = int]':
>
> The full test suite showed 705 failures for _GLIBCXX_DEBUG=1 run, and every one I checked has the same error. They may be other, but are very hard to find.
> They are mostly point toward basic_regexp or basic_string.
> See the attachment for the full list.
>
> (The workaround seems far for useless currently).


Yes, I can confirm these failures are still present.

This is enough to reproduce them:
make check RUNTESTFLAGS=--target_board=unix/-D_GLIBCXX_DEBUG

There are two failures in 21_strings:
FAIL: 21_strings/basic_string/requirements/explicit_instantiation/int.cc
 -std=gnu++11 (test for excess errors)
FAIL: 21_strings/basic_string/requirements/explicit_instantiation/debug.cc
 -std=gnu++11 (test for excess errors)

and all the others seem to have the same root cause, related to regex:

FAIL: std/ranges/adaptors/p2770r0.cc  -std=gnu++20 (test for excess errors)
Excess errors:
/home/test/build/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/helper_functions.h:212:
error: no matching function for call to '__iterator_category(int&)'
/home/test/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/regex_compiler.tcc:313:
  [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit
=0 to disable ]
/home/test/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_iterator_base_types.h:241:
error: no type named 'iterator_category' in 'struct std::itera
tor_traits<int>'



More information about the Libstdc++ mailing list