c++/modules: Use decl_linkage in maybe_record_mergeable_decl

This avoids any possible inconsistencies (current or future) about
whether a declaration is internal or not.

gcc/cp/ChangeLog:

	* name-lookup.cc (maybe_record_mergeable_decl): Use decl_linkage
	instead of ad-hoc checks.

Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
Reviewed-by: Jason Merrill <jason@redhat.com>
This commit is contained in:
Nathaniel Shead 2024-09-04 02:42:58 +10:00
parent af4471cb42
commit ad08ef098a

View file

@ -3725,17 +3725,10 @@ maybe_record_mergeable_decl (tree *slot, tree name, tree decl)
if (TREE_CODE (*slot) != BINDING_VECTOR)
return;
if (!TREE_PUBLIC (CP_DECL_CONTEXT (decl)))
/* Member of internal namespace. */
if (decl_linkage (decl) == lk_internal)
return;
tree not_tmpl = STRIP_TEMPLATE (decl);
if ((TREE_CODE (not_tmpl) == FUNCTION_DECL
|| VAR_P (not_tmpl))
&& DECL_THIS_STATIC (not_tmpl))
/* Internal linkage. */
return;
bool is_attached = (DECL_LANG_SPECIFIC (not_tmpl)
&& DECL_MODULE_ATTACH_P (not_tmpl));
tree *gslot = get_fixed_binding_slot