commit ec12ddd1e7f7d6b48a593df865e7846039e7d62e Author: Jonathan Wakely Date: Thu Jan 6 11:11:52 2022 libstdc++: Adjust friend declarations to work with Clang I think this code is valid but it fails with Clang, possibly due to https://llvm.org/PR38882 Qualifying the names makes it work for all compilers. libstdc++-v3/ChangeLog: * include/bits/regex.h (basic_regex, match_results): Qualify name in friend declaration, to work around Clang bug. diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h index 7480b0a5f97..46c168010bf 100644 --- a/libstdc++-v3/include/bits/regex.h +++ b/libstdc++-v3/include/bits/regex.h @@ -796,7 +796,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 __detail::__regex_algo_impl(_Bp, _Bp, match_results<_Bp, _Ap>&, const basic_regex<_Cp, _Rp>&, regex_constants::match_flag_type, - _RegexExecutorPolicy, bool); + __detail::_RegexExecutorPolicy, bool); template friend class __detail::_Executor; @@ -2067,7 +2067,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 __detail::__regex_algo_impl(_Bp, _Bp, match_results<_Bp, _Ap>&, const basic_regex<_Cp, _Rp>&, regex_constants::match_flag_type, - _RegexExecutorPolicy, bool); + __detail::_RegexExecutorPolicy, bool); // Reset contents to __size unmatched sub_match objects // (plus additional objects for prefix, suffix and unmatched sub).