libstdc++: Adjust friend declarations to work with Clang
authorJonathan Wakely <jwakely@redhat.com>
Thu, 6 Jan 2022 11:11:52 +0000 (11:11 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 6 Jan 2022 14:56:48 +0000 (14:56 +0000)
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.

libstdc++-v3/include/bits/regex.h

index 7480b0a..46c1680 100644 (file)
@@ -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<typename, typename, typename, bool>
        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).