gdb: fix -Wtautological-overlap-compare warning in mips-linux-tdep.c

When building with clang 11, I get:

  CXX    mips-linux-tdep.o
/home/smarchi/src/binutils-gdb/gdb/mips-linux-tdep.c:643:30: error: overlapping comparisons always evaluate to true [-Werror,-Wtautological-overlap-compare]
      if (insn != 0x03e07821 || insn != 0x03e07825)
          ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/smarchi/src/binutils-gdb/gdb/mips-linux-tdep.c:636:30: error: overlapping comparisons always evaluate to true [-Werror,-Wtautological-overlap-compare]
      if (insn != 0x03e0782d || insn != 0x03e07825)
          ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~

Indeed, given two different values, `insn` will always be different to
one of them, and these conditions always be true.

This code is meant to return if `insn` isn't one of these two values, so
the `||` should be replaced with `&&`.

gdb/ChangeLog:

	* mips-linux-tdep.c (mips_linux_in_dynsym_stub): Fix condition.
This commit is contained in:
Simon Marchi 2020-05-16 11:21:41 -04:00
parent 56770bdab2
commit 59f7bd8d2b
2 changed files with 6 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2020-05-16 Simon Marchi <simon.marchi@efficios.com>
* mips-linux-tdep.c (mips_linux_in_dynsym_stub): Fix condition.
2020-05-16 Pedro Alves <palves@redhat.com>
* ia64-linux-nat.c

View File

@ -633,16 +633,14 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc)
if (n64)
{
/* 'daddu t7,ra' or 'or t7, ra, zero'*/
if (insn != 0x03e0782d || insn != 0x03e07825)
if (insn != 0x03e0782d && insn != 0x03e07825)
return 0;
}
else
{
/* 'addu t7,ra' or 'or t7, ra, zero'*/
if (insn != 0x03e07821 || insn != 0x03e07825)
if (insn != 0x03e07821 && insn != 0x03e07825)
return 0;
}
insn = extract_unsigned_integer (p + 8, 4, byte_order);