]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Call regex_traits::transform_primary() only when necessary [PR98723]
authorLuca Bacci <luca.bacci982@gmail.com>
Tue, 17 Dec 2024 18:57:30 +0000 (18:57 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 18 Dec 2024 08:26:05 +0000 (08:26 +0000)
commiteb339c29ee42aa59591fc50d6d8a1ab903d2a3fe
treeaef39b8d8271946f51e87051c07f92ac81405b42
parentb34fbab529e64dbeb6db70263e35373c200f899a
libstdc++: Call regex_traits::transform_primary() only when necessary [PR98723]

This is both a performance optimization and a partial fix for PR 98723.

This commit fixes the issue for bracket expressions that do not depend
on the locale's collation facet. Examples:

 * Character ranges ([a-z]) when std::regex::collate is not set
 * Character classes ([:alnum:])
 * Individual characters ([abc])

Signed-off-by: Luca Bacci <luca.bacci982@gmail.com>
libstdc++-v3/ChangeLog:

PR libstdc++/98723
* include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply):
Only use transform_primary when an equivalence set is used.
libstdc++-v3/include/bits/regex_compiler.tcc