]> gcc.gnu.org Git - gcc.git/commit
libstdc++: Add valid range assertions to std::basic_regex [PR89927]
authorJonathan Wakely <jwakely@redhat.com>
Mon, 11 Oct 2021 11:08:59 +0000 (12:08 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Mon, 11 Oct 2021 19:34:16 +0000 (20:34 +0100)
commit6b6788f8c2748060d922cc22173ff7f8500917e9
tree4d7c6314f1168a8b0e33d11e8cfb6c6da5d6adc6
parent84088dc4bb6a546c896a068dc201463493babf43
libstdc++: Add valid range assertions to std::basic_regex [PR89927]

This adds some debug assertions to basic_regex. They don't actually
diagnose the error in the PR yet, but I have another patch to make them
more effective.

Also change the __glibcxx_assert(false) consistency checks to include a
string literal that tells the user a bit more about why the process
aborted. We could consider adding a __glibcxx_bug or
__glibcxx_internal_error macro for this purpose, but ideally we'll never
hit such bugs anyway so it shouldn't be needed.

libstdc++-v3/ChangeLog:

PR libstdc++/89927
* include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
Add __glibcxx_requires_string_len assertion.
(basic_regex::assign(InputIterator, InputIterator)): Add
__glibcxx_requires_valid_range assertion.
* include/bits/regex_scanner.tcc (_Scanner::_M_advance())
(_Scanner::_M_scan_normal()): Use string literal in assertions.
libstdc++-v3/include/bits/regex.h
libstdc++-v3/include/bits/regex_scanner.tcc
This page took 0.059107 seconds and 6 git commands to generate.