Lint: * c-exp.y (parse_number): Avoid shift warning.
authorJohn Gilmore <gnu@cygnus>
Sat, 20 Mar 1993 08:44:42 +0000 (08:44 +0000)
committerJohn Gilmore <gnu@cygnus>
Sat, 20 Mar 1993 08:44:42 +0000 (08:44 +0000)
* serial.h (struct ttystate):  Declare empty one on DOS.

gdb/ChangeLog
gdb/c-exp.y
gdb/serial.h

index 0369b453f41d70c5b1401c31dea8eb244aa05d08..c9ce07ffcad72ad0dfc52d8f1f75cd1f3cd286a5 100644 (file)
@@ -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.
index 555471fddb212cc1d72e454908b0a2686b2f7aed..933007ed33fe6c19112fc1b758b599c29cb665a6 100644 (file)
@@ -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;
index 6ac5c0827b67a7e140ae314871a856c3e4063ad9..147873c51f2457747f335188d4bc24e6f7738660 100644 (file)
@@ -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