diff options
author | Tom Tromey <tromey@cygnus.com> | 1998-12-15 09:44:14 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1998-12-15 09:44:14 +0000 |
commit | 06d84d69355885992c5494eef50633624ee14bf6 (patch) | |
tree | 4ce9e7c2ee19f26ed33b23bf64aeeaed86ee0a01 /gcc | |
parent | 68b048138c5bf9ce62ab690a7ae3b8a91d22234e (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/java/gjavah.c | 28 |
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: |