public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
@ 2002-12-05  9:56 Tom Tromey
  0 siblings, 0 replies; 5+ messages in thread
From: Tom Tromey @ 2002-12-05  9:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR libgcj/8823; it has been noted by GNATS.

From: Tom Tromey <tromey@redhat.com>
To: mark@klomp.org
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
Date: 05 Dec 2002 10:49:02 -0700

 >>>>> "Mark" == Mark Wielaard <mark@klomp.org> writes:
 
 Mark> Number:         8823
 Mark> The following code shows the problem:
 Mark> When compiled with "gcj -C *.java" and run with "gij C" it throws:
 
 I didn't see any attached code.
 Could you email it?
 
 Tom


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
@ 2002-12-08 16:06 Tom Tromey
  0 siblings, 0 replies; 5+ messages in thread
From: Tom Tromey @ 2002-12-08 16:06 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR libgcj/8823; it has been noted by GNATS.

From: Tom Tromey <tromey@redhat.com>
To: mark@klomp.org
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
Date: 08 Dec 2002 17:03:49 -0700

 Tom> Second, we definitely have to search for the method in this case.  I'm
 Tom> testing a fix; in resolve.cc we now search superinterfaces of abstract
 Tom> classes.
 
 It turns out to be much more complex :-(.
 We don't account for "Marinda methods" in _Jv_LayoutVTableMethods.
 
 Tom


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
@ 2002-12-08 14:56 Tom Tromey
  0 siblings, 0 replies; 5+ messages in thread
From: Tom Tromey @ 2002-12-08 14:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR libgcj/8823; it has been noted by GNATS.

From: Tom Tromey <tromey@redhat.com>
To: mark@klomp.org
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
Date: 08 Dec 2002 15:54:04 -0700

 >>>>> "Mark" == Mark Wielaard <mark@klomp.org> writes:
 
 Mark> Number:         8823
 Mark> Synopsis:       gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
 
 I looked at this today.
 
 First, gcj should probably generate a declaration for each such method
 in the abstract class' .class file.  I think there may be another PR
 on this topic.
 
 Second, we definitely have to search for the method in this case.  I'm
 testing a fix; in resolve.cc we now search superinterfaces of abstract
 classes.
 
 Tom


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
@ 2002-12-05 15:36 Mark Wielaard
  0 siblings, 0 replies; 5+ messages in thread
From: Mark Wielaard @ 2002-12-05 15:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR libgcj/8823; it has been noted by GNATS.

From: Mark Wielaard <mark@klomp.org>
To: tromey@redhat.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: libgcj/8823: gij doesn't handle "Marinda methods" (abstract
	class that implements interface but doesn't define all methods)
Date: 06 Dec 2002 00:31:10 +0100

 --=-XTxIB+L0stST87P2zMv4
 Content-Type: text/plain
 Content-Transfer-Encoding: 7bit
 
 Hi Tom,
 
 On Thu, 2002-12-05 at 18:49, Tom Tromey wrote:
 > >>>>> "Mark" == Mark Wielaard <mark@klomp.org> writes:
 > 
 > Mark> Number:         8823
 > Mark> The following code shows the problem:
 > Mark> When compiled with "gcj -C *.java" and run with "gij C" it throws:
 > 
 > I didn't see any attached code.
 > Could you email it?
 
 Attached. It is now also in the How To Repeat section.
 
 Cheers,
 
 Mark
 
 --=-XTxIB+L0stST87P2zMv4
 Content-Disposition: inline; filename=I.java
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/x-java; name=I.java; charset=ISO-8859-15
 
 public interface I
 {
   public void m();
 }
 
 --=-XTxIB+L0stST87P2zMv4
 Content-Disposition: attachment; filename=A.java
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/x-java; name=A.java; charset=ISO-8859-15
 
 public abstract class A implements I
 {
   // But doesn't define m()
 }
 
 --=-XTxIB+L0stST87P2zMv4
 Content-Disposition: attachment; filename=C.java
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/x-java; name=C.java; charset=ISO-8859-15
 
 public class C extends A // which means it implements I
 {
   public static void main(String[] args)
   {
     // Defining c as either I or C will work.
     A c =3D new C();
     c.m();
   }
 
   public void m()
   {
     System.out.println("Hello World!");
   }
 }
 
 --=-XTxIB+L0stST87P2zMv4--
 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
@ 2002-12-05  9:36 mark
  0 siblings, 0 replies; 5+ messages in thread
From: mark @ 2002-12-05  9:36 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8823
>Category:       libgcj
>Synopsis:       gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 05 09:36:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     mark@klomp.org
>Release:        gij (GNU libgcj) version 3.3 20021205 (experimental)
>Organization:
>Environment:

>Description:
_Jv_ResolvePoolEntry doesn't lookup methods in (abstract) superclasses that (didn't) implement an Interface method.

The following code shows the problem:

When compiled with "gcj -C *.java" and run with "gij C" it throws:

Exception in thread "main" java.lang.NoSuchMethodError: method A.m was not found.
   at _Jv_ResolvePoolEntry(java.lang.Class, int) (/usr/local/gcc33/lib/libgcj.so.3.0.0)
   at C.main(java.lang.String[]) (Unknown Source)

More background information (look for Miranda) can be found at the IK.VM.NET weblog of Jeroen Frijters:

http://radio.weblogs.com/0109845/2002/11/22.html#a65
http://radio.weblogs.com/0109845/2002/11/25.html#a67
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-12-09  0:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-05  9:56 libgcj/8823: gij doesn't handle "Marinda methods" (abstract class that implements interface but doesn't define all methods) Tom Tromey
  -- strict thread matches above, loose matches on Subject: below --
2002-12-08 16:06 Tom Tromey
2002-12-08 14:56 Tom Tromey
2002-12-05 15:36 Mark Wielaard
2002-12-05  9:36 mark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).