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.
|| !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)