* jcf-write.c (generate_bytecode_insns): Only write const_0 if not
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Apr 2002 16:36:47 +0000 (16:36 +0000)
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Apr 2002 16:36:47 +0000 (16:36 +0000)
negative zero.

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

gcc/java/ChangeLog
gcc/java/jcf-write.c

index ecc8e50..2666603 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-16  Mark Wielaard  <mark@klomp.org>
+
+       * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
+       negative zero.
+
 2002-04-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
 
        Fix for PR java/6294:
index f357e63..215d0c5 100644 (file)
@@ -25,6 +25,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
 #include "system.h"
 #include "jcf.h"
 #include "tree.h"
+#include "real.h"
 #include "java-tree.h"
 #include "obstack.h"
 #undef AND
@@ -1536,7 +1537,7 @@ generate_bytecode_insns (exp, target, state)
       {
        int prec = TYPE_PRECISION (type) >> 5;
        RESERVE(1);
-       if (real_zerop (exp))
+       if (real_zerop (exp) && ! REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (exp)))
          OP1 (prec == 1 ? OPCODE_fconst_0 : OPCODE_dconst_0);
        else if (real_onep (exp))
          OP1 (prec == 1 ? OPCODE_fconst_1 : OPCODE_dconst_1);