aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1993-03-20 08:44:42 +0000
committerJohn Gilmore <gnu@cygnus>1993-03-20 08:44:42 +0000
commitf24c159f1bc6baef47a62c2473633e9875fa7a59 (patch)
tree9b02c284efa48e44132d1458fc5e240121d3bbf1
parent6aa83a798d27cbd0b14990c048310fa98cdea393 (diff)
downloadgdb-f24c159f1bc6baef47a62c2473633e9875fa7a59.zip
gdb-f24c159f1bc6baef47a62c2473633e9875fa7a59.tar.gz
gdb-f24c159f1bc6baef47a62c2473633e9875fa7a59.tar.bz2
Lint: * c-exp.y (parse_number): Avoid shift warning.
* serial.h (struct ttystate): Declare empty one on DOS.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/c-exp.y15
-rw-r--r--gdb/serial.h6
3 files changed, 22 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0369b45..c9ce07f 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 555471f..933007e 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 6ac5c08..147873c 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