From 06d84d69355885992c5494eef50633624ee14bf6 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 15 Dec 1998 09:44:14 +0000 Subject: [PATCH] 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 --- gcc/java/ChangeLog | 5 +++++ gcc/java/gjavah.c | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 4032f8ffacd..a3b36c2fd09 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +1998-12-15 Tom Tromey + + * gjavah.c (print_field_info): Changed how most negative number is + printed. + Mon Dec 14 18:49:29 1998 Per Bothner * parse.y (fold_constant_for_init): New function. diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c index af9a6c78646..45fc7d01052 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: -- 2.30.2