aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>1998-12-15 09:44:14 +0000
committerTom Tromey <tromey@gcc.gnu.org>1998-12-15 09:44:14 +0000
commit06d84d69355885992c5494eef50633624ee14bf6 (patch)
tree4ce9e7c2ee19f26ed33b23bf64aeeaed86ee0a01 /gcc
parent68b048138c5bf9ce62ab690a7ae3b8a91d22234e (diff)
downloadgcc-06d84d69355885992c5494eef50633624ee14bf6.zip
gcc-06d84d69355885992c5494eef50633624ee14bf6.tar.gz
gcc-06d84d69355885992c5494eef50633624ee14bf6.tar.bz2
gjavah.c (print_field_info): Changed how most negative number is printed.
* gjavah.c (print_field_info): Changed how most negative number is printed. From-SVN: r24323
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/gjavah.c28
2 files changed, 19 insertions, 14 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 4032f8f..a3b36c2 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -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.
diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c
index af9a6c7..45fc7d0 100644
--- a/gcc/java/gjavah.c
+++ b/gcc/java/gjavah.c
@@ -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: