mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-26 12:23:59 +08:00
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.
This commit is contained in:
parent
873cffc792
commit
03c7145a41
@ -4569,6 +4569,8 @@ lookup_imported_hidden_friend (tree friend_tmpl)
|
||||
|| !DECL_MODULE_IMPORT_P (inner))
|
||||
return NULL_TREE;
|
||||
|
||||
lazy_load_pendings (friend_tmpl);
|
||||
|
||||
tree bind = get_mergeable_namespace_binding
|
||||
(current_namespace, DECL_NAME (inner), DECL_MODULE_ATTACH_P (inner));
|
||||
if (!bind)
|
||||
|
Loading…
Reference in New Issue
Block a user