OSDN Git Service

* gjavah.c (print_field_info): Changed how most negative number is
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Dec 1998 09:44:14 +0000 (09:44 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Dec 1998 09:44:14 +0000 (09:44 +0000)
printed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24323 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/gjavah.c

index 4032f8f..a3b36c2 100644 (file)
@@ -1,3 +1,8 @@
+1998-12-15  Tom Tromey  <tromey@cygnus.com>
+
+       * gjavah.c (print_field_info): Changed how most negative number is
+       printed.
+
 Mon Dec 14 18:49:29 1998  Per Bothner  <bothner@cygnus.com>
 
        * parse.y (fold_constant_for_init):  New function.
index af9a6c7..45fc7d0 100644 (file)
@@ -307,39 +307,39 @@ DEFUN(print_field_info, (stream, jcf, name_index, sig_index, flags),
            case CONSTANT_Integer:
              {
                jint num;
+               int most_negative = 0;
                fputs ("  static const jint ", out);
                print_name (out, jcf, name_index);
                fputs (" = ", out);
                num = JPOOL_INT (jcf, current_field_value);
-               /* We single out the most negative number to print in
-                  hex.  That avoids later warnings from g++.  */
+               /* We single out the most negative number to print
+                  specially.  This avoids later warnings from g++.  */
                if (num == 0x80000000)
                  {
-                   strcpy (buffer, "0x");
-                   format_uint (buffer + 2, (jlong) (uint32) num, 16);
+                   most_negative = 1;
+                   ++num;
                  }
-               else
-                 format_int (buffer, (jlong) num, 10);
-               fprintf (out, "%sL;\n", buffer);
+               format_int (buffer, (jlong) num, 10);
+               fprintf (out, "%sL%s;\n", buffer, most_negative ? " - 1" : "");
              }
              break;
            case CONSTANT_Long:
              {
                jlong num;
+               int most_negative = 0;
                fputs ("  static const jlong ", out);
                print_name (out, jcf, name_index);
                fputs (" = ", out);
                num = JPOOL_LONG (jcf, current_field_value);
-               /* We single out the most negative number to print in
-                  hex.  That avoids later warnings from g++.  */
+               /* We single out the most negative number to print
+                   specially..  This avoids later warnings from g++.  */
                if (num == 0x8000000000000000LL)
                  {
-                   strcpy (buffer, "0x");
-                   format_uint (buffer + 2, num, 16);
+                   most_negative = 1;
+                   ++num;
                  }
-               else
-                 format_int (buffer, num, 10);
-               fprintf (out, "%sLL;\n", buffer);
+               format_int (buffer, num, 10);
+               fprintf (out, "%sLL%s;\n", buffer, most_negative ? " - 1" :"");
              }
              break;
            case CONSTANT_Float: