gdb/hppa-tdep.c: Fix a logical typo bug found by compiler warning

Message ID 543D93DD.5000906@gmail.com
State New, archived
Headers

Commit Message

Chen Gang Oct. 14, 2014, 9:21 p.m. UTC
  '(inst >> 6) & 0xf)' need compare with both '0x8' and '0x9', original
implementation missed additional '(' and ')' for it, which will cause
logical bug (will skip '0x8' checking).

The related warning under gcc5:

  gcc -g -O2   -I. -I../../binutils-gdb/gdb -I../../binutils-gdb/gdb/common -I../../binutils-gdb/gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I../../binutils-gdb/gdb/../include/opcode -I../../binutils-gdb/gdb/../opcodes/.. -I../../binutils-gdb/gdb/../readline/.. -I../bfd -I../../binutils-gdb/gdb/../bfd -I../../binutils-gdb/gdb/../include -I../libdecnumber -I../../binutils-gdb/gdb/../libdecnumber  -I../../binutils-gdb/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/usr/include/python2.7 -I/usr/include/python2.7 -Wall -Wdeclaration-after-statement -Wpointer-arith -Wpointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wformat-nonliteral -Werror -c -o hppa-tdep.o -MT hppa-tdep.o -MMD -MP -MF .deps/hppa-tdep.Tpo ../../binutils-gdb/gdb/hppa-tdep.c
  ../../binutils-gdb/gdb/hppa-tdep.c: In function 'inst_saves_gr':
  ../../binutils-gdb/gdb/hppa-tdep.c:1406:30: error: comparison of constant '9' with boolean expression is always false [-Werror=bool-compare]
          || (inst >> 6) & 0xf) == 0x9))
                              ^
  cc1: all warnings being treated as errors

Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
---
 gdb/hppa-tdep.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Andreas Schwab Oct. 14, 2014, 9:29 p.m. UTC | #1
Chen Gang <gang.chen.5i5j@gmail.com> writes:

>  	  && (((inst >> 6) & 0xf) == 0x8
> -	      || (inst >> 6) & 0xf) == 0x9))
> +	      || ((inst >> 6) & 0xf) == 0x9)))

             ((inst >> 6) & 0xe) == 8

Andreas.
  

Patch

diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index 627f31a..51edead 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -1403,7 +1403,7 @@  inst_saves_gr (unsigned long inst)
   if ((inst >> 26) == 0x19 || (inst >> 26) == 0x18
       || ((inst >> 26) == 0x3
 	  && (((inst >> 6) & 0xf) == 0x8
-	      || (inst >> 6) & 0xf) == 0x9))
+	      || ((inst >> 6) & 0xf) == 0x9)))
     return hppa_extract_5R_store (inst);
 
   return 0;