This is the mail archive of the
mailing list for the binutils project.
Re: [PATCH] gdb/microblaze-tdep.c: Check whether less than zero in conditional expression
- From: Michael Eager <eager at eagerm dot com>
- To: Chen Gang <gang dot chen dot 5i5j at gmail dot com>, eager at eagercon dot com
- Cc: binutils at sourceware dot org, gdb-patches at sourceware dot org
- Date: Wed, 23 Jul 2014 13:04:18 -0700
- Subject: Re: [PATCH] gdb/microblaze-tdep.c: Check whether less than zero in conditional expression
- Authentication-results: sourceware.org; auth=none
- References: <53CBCC2F dot 7040702 at gmail dot com>
On 07/20/14 07:03, Chen Gang wrote:
Use typecast 'size_t' on 'reg', not only avoid the related warning, but
also check whether less than zero -- for 'reg' is type 'int', and sizeof
(dwarf2_to_reg_map) is less than 0x7fff.
It is quoted in gdb_assert(), so need check 'reg' whether less than zero.
And the related warning (with '-W'):
../../binutils-gdb/gdb/microblaze-tdep.c:667:3: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
* microblaze-tdep.c (microblaze_dwarf2_reg_to_regnum): Check whether
less tha zero in conditional expression.
Signed-off-by: Chen Gang <email@example.com>
gdb/microblaze-tdep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
index 7e89241..9bec260 100644
@@ -664,7 +664,7 @@ static int dwarf2_to_reg_map =
microblaze_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int reg)
- gdb_assert (reg < sizeof (dwarf2_to_reg_map));
+ gdb_assert ((size_t) reg < sizeof (dwarf2_to_reg_map));
I don't see anything in the patch which does what you describe,
checking whether reg is less than zero. Converting a signed
integer to an unsigned integer is not a way to check whether
it is less than zero. This is better:
+ gdb_assert (reg >= 0 && (size_t) reg < sizeof (dwarf2_to_reg_map));
I do not see this error message in my build which uses -Wall.
What is your build environment? Which version of GCC?
Michael Eager firstname.lastname@example.org
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077