mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
Correct logic for "defined by object"
The old code missed testing bfd_link_hash_undefweak, and wrongly excluded bfd_link_hash_common symbols. It is also clearer to invert the set of enum bfd_link_hash_type values tested. bfd_link_hash_indirect and bfd_link_hash_warning will never appear here. * ldexp.c (update_definedness): Correct logic setting by_object.
This commit is contained in:
@ -1,3 +1,7 @@
|
||||
2014-12-23 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ldexp.c (update_definedness): Correct logic setting by_object.
|
||||
|
||||
2014-12-23 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ldexp.c (struct definedness_hash_entry, definedness_table)
|
||||
|
@ -304,11 +304,11 @@ update_definedness (const char *name, struct bfd_link_hash_entry *h)
|
||||
einfo (_("%P%F: bfd_hash_lookup failed creating symbol %s\n"), name);
|
||||
|
||||
/* If the symbol was already defined, and not by a script, then it
|
||||
must be defined by an object file. */
|
||||
must be defined by an object file or by the linker target code. */
|
||||
if (!defentry->by_script
|
||||
&& h->type != bfd_link_hash_undefined
|
||||
&& h->type != bfd_link_hash_common
|
||||
&& h->type != bfd_link_hash_new)
|
||||
&& (h->type == bfd_link_hash_defined
|
||||
|| h->type == bfd_link_hash_defweak
|
||||
|| h->type == bfd_link_hash_common))
|
||||
defentry->by_object = 1;
|
||||
|
||||
defentry->by_script = 1;
|
||||
|
Reference in New Issue
Block a user