[kaffe] Bug Report: Mixed Mode Arithmetic

atanu_mohanty@agilent.com atanu_mohanty@agilent.com
Fri, 14 Jun 2002 10:28:44 -0600


Hi,
  I found the following bug in Kaffe 1.0.6.
Please ignore this if 1.0.7rc1 has fixed it.
Thanks.

Atanu

Description:
Mixed mode arithmetic is not handled properly.
In particular int * double is int, in violation of
JLS 5.6.2 ( Binary numeric promotion ).

---------------------
[mcast@pimcast tmp]$ java -version
Kaffe Virtual Machine
Copyright (c) 1996-2000
Transvirtual Technologies, Inc.  All rights reserved
Engine: Just-in-time v3   Version: 1.0.6   Java Version: 1.1
[mcast@pimcast tmp]$ java KBug
2*Math.PI = 6
2.0*Math.PI = 6.2831853071795862
[mcast@pimcast tmp]$ cat KBug.java 

public class KBug
{
  public static void main( String args[] )
  {
    System.out.println( "2*Math.PI = " + (2*Math.PI) );
    System.out.println( "2.0*Math.PI = " + (2.0*Math.PI) );
  }
}

[mcast@pimcast tmp]$ uname -a
Linux pimcast 2.4.7-10 #1 Thu Sep 6 17:21:28 EDT 2001 i586 unknown

---------------------

OS I am using: RHL7.2

JDK on another machine prints the following...

[amohanty@wstcrobot61 glyph]$ java KBug
2*Math.PI = 6.28319
2.0*Math.PI = 6.28319

====================
Note: This is not simply a formatting bug. It caused
a method for drawing an arc through three given points
to show incomplete arcs. The fix was to replace 2*Math.PI
by 2.0*Math.PI everywhere.

========END=========