From 136bf51c5cc9884840d7585a91710785c8236353 Mon Sep 17 00:00:00 2001 From: rmathew Date: Tue, 1 Feb 2005 18:38:12 +0000 Subject: [PATCH] PR java/19738 * gjavah.c (jni_print_float): Do not emit floating-point initialiser for a static final field. (jni_print_double): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94553 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/ChangeLog | 7 +++++++ gcc/java/gjavah.c | 60 ++++++++++++++++++++++++++++++------------------------ 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 50d79e5..64e12fe 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2005-02-02 Ranjit Mathew + + PR java/19738 + * gjavah.c (jni_print_float): Do not emit floating-point + initialiser for a static final field. + (jni_print_double): Likewise. + 2005-02-01 Mark Mitchell Revert: diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c index 1f25ce6..e232a16 100644 --- a/gcc/java/gjavah.c +++ b/gcc/java/gjavah.c @@ -1,7 +1,7 @@ /* Program to write C++-suitable header files from a Java(TM) .class file. This is similar to SUN's javah. -Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. @@ -281,19 +281,22 @@ jni_print_float (FILE *stream, jfloat f) work in data initializers. FIXME. */ if (JFLOAT_FINITE (f)) { - fputs (flag_jni ? " " : " = ", out); - if (f.negative) - putc ('-', stream); - if (f.exponent) - fprintf (stream, "0x1.%.6xp%+df", - ((unsigned int)f.mantissa) << 1, - f.exponent - JFLOAT_EXP_BIAS); - else - /* Exponent of 0x01 is -125; exponent of 0x00 is *also* -125, - because the implicit leading 1 bit is no longer present. */ - fprintf (stream, "0x0.%.6xp%+df", - ((unsigned int)f.mantissa) << 1, - f.exponent + 1 - JFLOAT_EXP_BIAS); + if (flag_jni) + { + fputs (" ", out); + if (f.negative) + putc ('-', stream); + if (f.exponent) + fprintf (stream, "0x1.%.6xp%+df", + ((unsigned int)f.mantissa) << 1, + f.exponent - JFLOAT_EXP_BIAS); + else + /* Exponent of 0x01 is -125; exponent of 0x00 is *also* -125, + because the implicit leading 1 bit is no longer present. */ + fprintf (stream, "0x0.%.6xp%+df", + ((unsigned int)f.mantissa) << 1, + f.exponent + 1 - JFLOAT_EXP_BIAS); + } } if (! flag_jni) fputs (";\n", stream); @@ -307,19 +310,22 @@ jni_print_double (FILE *stream, jdouble f) work in data initializers. FIXME. */ if (JDOUBLE_FINITE (f)) { - fputs (flag_jni ? " " : " = ", out); - if (f.negative) - putc ('-', stream); - if (f.exponent) - fprintf (stream, "0x1.%.5x%.8xp%+d", - f.mantissa0, f.mantissa1, - f.exponent - JDOUBLE_EXP_BIAS); - else - /* Exponent of 0x001 is -1022; exponent of 0x000 is *also* -1022, - because the implicit leading 1 bit is no longer present. */ - fprintf (stream, "0x0.%.5x%.8xp%+d", - f.mantissa0, f.mantissa1, - f.exponent + 1 - JDOUBLE_EXP_BIAS); + if (flag_jni) + { + fputs (" ", out); + if (f.negative) + putc ('-', stream); + if (f.exponent) + fprintf (stream, "0x1.%.5x%.8xp%+d", + f.mantissa0, f.mantissa1, + f.exponent - JDOUBLE_EXP_BIAS); + else + /* Exponent of 0x001 is -1022; exponent of 0x000 is *also* -1022, + because the implicit leading 1 bit is no longer present. */ + fprintf (stream, "0x0.%.5x%.8xp%+d", + f.mantissa0, f.mantissa1, + f.exponent + 1 - JDOUBLE_EXP_BIAS); + } } fputs (flag_jni ? "\n" : ";\n", stream); } -- 2.7.4