From: John Gilmore Date: Sat, 20 Mar 1993 08:44:42 +0000 (+0000) Subject: Lint: * c-exp.y (parse_number): Avoid shift warning. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f24c159f1bc6baef47a62c2473633e9875fa7a59;p=binutils-gdb.git Lint: * c-exp.y (parse_number): Avoid shift warning. * serial.h (struct ttystate): Declare empty one on DOS. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0369b453f41..c9ce07ffcad 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Sat Mar 20 00:33:39 1993 John Gilmore (gnu@cygnus.com) + + * c-exp.y (parse_number): Avoid shift warning. + * serial.h (struct ttystate): Declare empty one on DOS. + Fri Mar 19 12:59:50 1993 Stu Grossman (grossman@cygnus.com) * xm-sun4os4.h: Return type of free() should be void, not int. diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 555471fddb2..933007ed33f 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -1042,9 +1042,18 @@ parse_number (p, len, parsed_float, putithere) /* If the number is too big to be an int, or it's got an l suffix then it's a long. Work out if this has to be a long by shifting right and and seeing if anything remains, and the - target int size is different to the target long size. */ - - if ((TARGET_INT_BIT != TARGET_LONG_BIT && (n >> TARGET_INT_BIT)) || long_p) + target int size is different to the target long size. + + In the expression below, we could have tested + (n >> TARGET_INT_BIT) + to see if it was zero, + but too many compilers warn about that, when ints and longs + are the same size. So we shift it twice, with fewer bits + each time, for the same result. */ + + if ( (TARGET_INT_BIT != TARGET_LONG_BIT + && ((n >> 2) >> (TARGET_INT_BIT-2))) /* Avoid shift warning */ + || long_p) { high_bit = ((unsigned LONGEST)1) << (TARGET_LONG_BIT-1); unsigned_type = builtin_type_unsigned_long; diff --git a/gdb/serial.h b/gdb/serial.h index 6ac5c0827b6..147873c51f2 100644 --- a/gdb/serial.h +++ b/gdb/serial.h @@ -1,5 +1,5 @@ /* Remote serial support interface definitions for GDB, the GNU Debugger. - Copyright 1992 Free Software Foundation, Inc. + Copyright 1992, 1993 Free Software Foundation, Inc. This file is part of GDB. @@ -21,6 +21,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Then you use the asynctsr */ +struct ttystate { + /* No members */ +}; + #else #ifdef HAVE_TERMIO