On 11/30/20 5:16 AM, Martin Liška wrote: > On 11/13/19 7:29 AM, Strager Neds wrote: >> -/* Worker for set_section. */ >> +void >> +symtab_node::set_section_for_node (const symtab_node &other) >> +{ >> + if (x_section == other.x_section) >> + return; >> + if (get_section () && other.get_section ()) >> + gcc_checking_assert (strcmp (get_section (), other.get_section >> ()) != 0); >> + release_section_hash_entry (x_section); >> + if (other.x_section) >> + x_section = retain_section_hash_entry (other.x_section); >> + else >> + x_section = NULL; >> +} >> + >> +/* Workers for set_section. */ >> >> bool >> -symtab_node::set_section (symtab_node *n, void *s) >> +symtab_node::set_section_from_string (symtab_node *n, void *s) >> { >> n->set_section_for_node ((char *)s); >> return false; >> } >> >> +bool >> +symtab_node::set_section_from_node (symtab_node *n, void *o) >> +{ >> + const symtab_node &other = *static_cast<const symtab_node *> (o); >> + n->set_section_for_node (other); >> + return false; >> +} >> + >> /* Set section of symbol and its aliases. */ > > Hello. > > Apparently, the patch caused the following regression: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98057 > > I've got a fix for it, but I would appreciate function comments > for the > > void > symtab_node::set_section_for_node (const symtab_node &other) > > and > bool > symtab_node::set_section_from_node (symtab_node *n, void *o) > > Can you please add it? I'll take care of it with the attached patch.
Jeff
commit dccae0f42e9e052b7721e805858d10d3ec345685 Author: Jeff Law <l...@redhat.com> Date: Mon Nov 30 15:21:38 2020 -0700 Add function comments for recently added member functions. gcc/ * symtab.c (set_section_for_node): Add function comment. (set_section_from_node): Likewise. diff --git a/gcc/symtab.c b/gcc/symtab.c index 393d6b07870..fd7d553c112 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1668,6 +1668,10 @@ symtab_node::set_section_for_node (const char *section) } } +/* Set the section of node THIS to be the same as the section + of node OTHER. Keep reference counts of the sections + up-to-date as needed. */ + void symtab_node::set_section_for_node (const symtab_node &other) { @@ -1691,6 +1695,9 @@ symtab_node::set_section_from_string (symtab_node *n, void *s) return false; } +/* Set the section of node N to be the same as the section + of node O. */ + bool symtab_node::set_section_from_node (symtab_node *n, void *o) {