This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true
- From: "mark at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Apr 2005 22:30:35 -0000
- Subject: [Bug java/21115] New: false boolean argument passed from pre-compiled to interpreted method is true
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This is reduced from the eclipse problem I was seeing.
Compile the following Test.java with gcj --main=Test Test.java
public abstract class Test
{
public static void main(String[] args) throws Exception
{
Class c = Class.forName("Invoke");
Object o = c.newInstance();
Test t = (Test) o;
t.test("FALSE", false);
t.test("TRUE", true);
}
public abstract boolean test(String s, boolean b);
}
Compile the Invoke.java class with gcj -C:
public class Invoke extends Test
{
public boolean test(String s, boolean b)
{
if (b)
System.out.println(s + ": TRUE!");
else
System.out.println(s + ": FALSE!");
return b;
}
}
Then run the expected output is:
FALSE: FALSE!
TRUE: TRUE!
But when running ./a.out you will get:
FALSE: TRUE!
TRUE: TRUE!
Running this completely interpreted (gcj -C Test.java; gij Test) produces the
correct output. It also works correctly on powerpc-unknown-linux-gnu (either
partly pre-compiled or fully interpreted).
--
Summary: false boolean argument passed from pre-compiled to
interpreted method is true
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mark at gcc dot gnu dot org
CC: aph at redhat dot com,gcc-bugs at gcc dot gnu dot
org,java-prs at gcc dot gnu dot org,tromey at redhat dot
com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21115