tail recursion in _bfd_elf_link_hide_symbol

We can clear the flags first if no backend hide_symbol function tests
or sets them, which is true.

	* elflink.c (_bfd_elf_link_hide_symbol): Clear flags before
	calling elf_backend_hide_symbol, to enable tail recursion.
This commit is contained in:
Alan Modra
2025-12-09 17:55:53 +10:30
parent f8b635b0c6
commit b1507ceb53

View File

@@ -8368,14 +8368,12 @@ _bfd_elf_link_hide_symbol (bfd *output_bfd,
{
if (is_elf_hash_table (info->hash))
{
const struct elf_backend_data *bed
= get_elf_backend_data (output_bfd);
struct elf_link_hash_entry *eh
= (struct elf_link_hash_entry *) h;
bed->elf_backend_hide_symbol (info, eh, true);
const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
struct elf_link_hash_entry *eh = (struct elf_link_hash_entry *) h;
eh->def_dynamic = 0;
eh->ref_dynamic = 0;
eh->dynamic_def = 0;
bed->elf_backend_hide_symbol (info, eh, true);
}
}