]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
gdb/dwarf: remove unnecessary comparison in cooked_index_entry::compare
authorSimon Marchi <simon.marchi@polymtl.ca>
Mon, 24 Mar 2025 20:20:27 +0000 (16:20 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 25 Mar 2025 15:32:35 +0000 (11:32 -0400)
commit8cbf7d2a4748b37d70323f45a378aee8a9a96f8a
treed0e385414e50ab895d3b540975937718de9fab27
parentf8297737722d63ba4a23c8df21765ab5a8368d64
gdb/dwarf: remove unnecessary comparison in cooked_index_entry::compare

I believe that the `(mode == MATCH && a == munge ('<'))` part of the
condition is unnecesary.  Or perhaps I don't understand the algorithm.

The use of "munge" above effectively makes it so that the template
portion of names is completely ignored for the sake of the comparison.

Then, in the condition, this:

    a == munge ('<')

is functionally equivalent to

    a == '\0'

If `a` is indeed '\0', and `b` is also '\0', then we would have taken
the earlier branch:

    if (a == b)
      return 0;

If `b` is not '\0', then we won't take this branch and we'll go into the
final comparison:

    return a < b ? -1 : 1;

So, as far as I can see, there is no case where `mode == MATCH`, where
we're going to use this special `return 0`.

Regression tested using the various DWARF target boards on Debian 12.

Change-Id: I5ea0463c1fdbbc1b003de2f0a423fd0073cc9dec
Approved-By: Tom Tromey <tom@tromey.com>
gdb/dwarf2/cooked-index.c