This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: big endian i86
Hi Nathan,
ping?
Approved in principle, but I am not especially taken with the way that
you have coded the tests:
+ /* Ignore generic big and little endian elf vectors. */
+ if ((!memcmp (target->name, "elf32", 5)
+ || !memcmp (target->name, "elf64", 5))
+ && (!strcmp (target->name + 5, "-big")
+ || !strcmp (target->name + 5, "-little")))
+ return 0;
Switching between memcmp and strcmp, using "!" which (to me anyway)
implies "not" rather than (in this case) meaning "is the same as" and
testing different parts of the same name is all very confusing. I
appreciate the attempt at optimizing the tests in order to reduce the
computation overhead, but in this case I think that clarity is better
than complexity. ie I would recommend:
/* Ignore generic big and little endian elf vectors. */
if ( strcmp (target->name, "elf32-big") == 0
|| strcmp (target->name, "elf64-big") == 0
|| strcmp (target->name, "elf32-little") == 0
|| strcmp (target->name, "elf64-little") == 0)
return 0;
I would also suggest that you turn this issue into a PR and then include
the PR number in the comment. That way if we have cause to revisit this
code in the future we will have a PR to look up to see why the change
was made.
Cheers
Nick