]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: modules and tsubst_friend_class
authorJason Merrill <jason@redhat.com>
Wed, 20 Nov 2024 12:51:10 +0000 (13:51 +0100)
committerJason Merrill <jason@redhat.com>
Thu, 21 Nov 2024 18:37:23 +0000 (19:37 +0100)
commit03c7145a4175c452362b5d1e2fa5f83dc8a01d18
tree15275a667cc9a80923bff9191f99005f14f071ad
parent873cffc79209119a65aa657b0d427345e52b75c3
c++: modules and tsubst_friend_class

In 20_util/function_objects/mem_fn/constexpr.cc we start to instantiate
_Mem_fn_base's friend declaration of _Bind_check_arity before we've loaded
the namespace-scope declaration, so lookup_imported_hidden_friend doesn't
find it.  But then we load the namespace-scope declaration in
lookup_template_class during substitution, and so when we get around to
pushing the result of substitution, they conflict.  Fixed by calling
lazy_load_pendings in lookup_imported_hidden_friend.

gcc/cp/ChangeLog:

* name-lookup.cc (lookup_imported_hidden_friend): Call
lazy_load_pendings.
gcc/cp/name-lookup.cc