This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] gdb/microblaze-tdep.c: Check whether less than zero in conditional expression

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 <>
  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
--- a/gdb/microblaze-tdep.c
+++ b/gdb/microblaze-tdep.c
@@ -664,7 +664,7 @@ static int dwarf2_to_reg_map[78] =
  static int
  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));
    return dwarf2_to_reg_map[reg];

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
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]