From: Simon Marchi <simark@simark.ca>
To: "Maciej W. Rozycki" <macro@linux-mips.org>,
Simon Marchi <simon.marchi@efficios.com>
Cc: gdb-patches@sourceware.org, Andreas Schwab <schwab@linux-m68k.org>
Subject: Re: [PATCH] gdb: fix -Wtautological-overlap-compare warning in mips-linux-tdep.c
Date: Sat, 16 May 2020 11:23:16 -0400 [thread overview]
Message-ID: <78758ac2-ffe6-0675-3c4f-b0177de4738f@simark.ca> (raw)
In-Reply-To: <alpine.LFD.2.21.2005161407230.1182553@eddie.linux-mips.org>
On 2020-05-16 9:29 a.m., Maciej W. Rozycki wrote:
> On Fri, 15 May 2020, Simon Marchi wrote:
>
>> diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
>> index aa7b8d11f3fb..ae067c19dfa7 100644
>> --- a/gdb/mips-linux-tdep.c
>> +++ b/gdb/mips-linux-tdep.c
>> @@ -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)
>
> Nope, this ought to be:
>
> 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)
>
> Likewise:
>
> if (insn != 0x03e07821 && insn != 0x03e07825)
>
> Thanks for looking into it (and for cc-ing me)!
>
> Maciej
>
Ah so I misinterpreted the intent. Thanks to you and Andreas for pointing
it out!
I modified the patch and pushed it as below.
Simon
From 59f7bd8d2b855162db6784c9724ead9e2377f32c Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@efficios.com>
Date: Sat, 16 May 2020 11:21:41 -0400
Subject: [PATCH] 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.
---
gdb/ChangeLog | 4 ++++
gdb/mips-linux-tdep.c | 6 ++----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1c4dc5c94c2a..8d6901efe67c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index aa7b8d11f3fb..3ffd53db9ead 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -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);
--
2.26.2
prev parent reply other threads:[~2020-05-16 15:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-16 2:01 Simon Marchi
2020-05-16 6:42 ` Andreas Schwab
2020-05-16 13:29 ` Maciej W. Rozycki
2020-05-16 15:23 ` Simon Marchi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=78758ac2-ffe6-0675-3c4f-b0177de4738f@simark.ca \
--to=simark@simark.ca \
--cc=gdb-patches@sourceware.org \
--cc=macro@linux-mips.org \
--cc=schwab@linux-m68k.org \
--cc=simon.marchi@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox