java/1452: failure to compile (correct) jikes generated bytecode for interface method invocation
bryce@albatross.co.nz
bryce@albatross.co.nz
Wed Dec 20 12:27:00 GMT 2000
>Number: 1452
>Category: java
>Synopsis: failure to compile (correct) jikes generated bytecode for interface method invocation
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: apbianco
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Dec 20 12:20:05 PST 2000
>Closed-Date: Wed Nov 17 20:11:18 PST 1999
>Last-Modified: Wed Nov 17 20:16:01 PST 1999
>Originator: bryce@albatross.co.nz
>Release: gcc version 2.96 19991006 (experimental)
>Organization:
>Environment:
any
>Description:
gcj fails to compile bytecode generated by jikes for an
interface method invocation on a reference to a sub-interface.
In this situation, javac generates an invokeinterface
instruction on the interface in which the method is actually
defined, rather than on the interface which is actually
being called. gcj accepts this bytecode.
jikes, however, generates an invokeinterface on the interface
type that is being called, and gcj gets the following error:
$ gcj *.class
Test.java: In class `Test':
Test.java: In method `main(java.lang.String[])':
Test.java:7: Class 'B' has no method named 'a' matching signature '()V'
see http://sourceware.cygnus.com/ml/java-discuss/1999-q4/msg00068.html
>How-To-Repeat:
Compile the following code with jikes. This is also in libgcj
cvs under testsuite/libjava.compile/invokeinterface:
public interface A
{
public void a();
}
public interface B extends A
{
public void b();
}
public class Test implements B
{
public static void main(String args[])
{
Test t = new Test();
B a = (B) t;
a.a();
}
public void a()
{
System.out.println("A");
}
public void b()
{
System.out.println("B");
}
}
>Fix:
>Release-Note:
>Audit-Trail:
Formerly PR gcj/72
State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Mon Nov 15 14:55:00 1999
State-Changed-Why:
Godmar Back sent a patch. It's here:
http://sourceware.cygnus.com/ml/java-discuss/1999-q4/msg00138.html
From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz, gback@cs.utah.edu,
java-gnats@sourceware.cygnus.com
Cc:
Subject: Re: gcj/72
Date: 15 Nov 1999 22:55:00 -0000
Synopsis: failure to compile (correct) jikes generated bytecode for interface method invocation
State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Mon Nov 15 14:55:00 1999
State-Changed-Why:
Godmar Back sent a patch. It's here:
http://sourceware.cygnus.com/ml/java-discuss/1999-q4/msg00138.html
http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&database=java&pr=72
From: Alexandre Petit-Bianco <apbianco@cygnus.com>
To: java-gnats@sourceware.cygnus.com
Cc:
Subject: Re: gcj/72
Date: Wed, 17 Nov 1999 16:48:58 -0800 (PST)
apbianco@cygnus.com writes:
> State-Changed-From-To: open->feedback
> State-Changed-By: apbianco
> State-Changed-When: Mon Nov 15 14:55:00 1999
> State-Changed-Why:
> Godmar Back sent a patch. It's here:
Of course not. It's here:
http://sourceware.cygnus.com/ml/java-discuss/1999-q4/msg00219.html
./A
State-Changed-From-To: feedback->closed
State-Changed-By: apbianco
State-Changed-When: Wed Nov 17 20:11:18 1999
State-Changed-Why:
I checked in Godmar's patch:
http://egcs.cygnus.com/ml/gcc-patches/1999-11/msg00561.html
From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz, gback@cs.utah.edu,
java-gnats@sourceware.cygnus.com
Cc:
Subject: Re: gcj/72
Date: 18 Nov 1999 04:11:18 -0000
Synopsis: failure to compile (correct) jikes generated bytecode for interface method invocation
State-Changed-From-To: feedback->closed
State-Changed-By: apbianco
State-Changed-When: Wed Nov 17 20:11:18 1999
State-Changed-Why:
I checked in Godmar's patch:
http://egcs.cygnus.com/ml/gcc-patches/1999-11/msg00561.html
http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&database=java&pr=72
>Unformatted:
More information about the Gcc-prs
mailing list