https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237068
--- Comment #52 from Mark Millard <[email protected]> --- (In reply to Justin Hibbits from comment #51) I do not know. if (h->is_weakalias) { struct elf_link_hash_entry *def = weakdef (h); // Here, so that def->def_regular is not based on bfd_link_hash_indirect ? // (Not a "real definition"?) /* If the real definition is defined by a regular object file, don't do anything special. See the longer description in _bfd_elf_adjust_dynamic_symbol, below. */ if (def->def_regular) { h = def; while ((h = h->u.alias) != def) h->is_weakalias = 0; } else { while (h->root.type == bfd_link_hash_indirect) h = (struct elf_link_hash_entry *) h->root.u.i.link; // Here instead? BFD_ASSERT (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak); BFD_ASSERT (def->def_dynamic); BFD_ASSERT (def->root.type == bfd_link_hash_defined); (*bed->elf_backend_copy_indirect_symbol) (eif->info, def, h); } } Might: while (def->root.type == bfd_link_hash_indirect) def = (struct elf_link_hash_entry *) def->root.u.i.link; (validly) reach something else that is not an example of bfd_link_hash_defined? Should def->root.type == bfd_link_hash_indirect have been possible in the first place? I did not figure out that much about the context for the code. -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "[email protected]"
