From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9035 invoked by alias); 23 Oct 2004 00:50:00 -0000 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org Received: (qmail 8992 invoked by uid 48); 23 Oct 2004 00:49:59 -0000 Date: Sat, 23 Oct 2004 00:50:00 -0000 From: "csm at gnu dot org" To: java-prs@gcc.gnu.org Message-ID: <20041023004958.18119.csm@gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug java/18119] New: GCJ imports inner classes too eagarly X-Bugzilla-Reason: CC X-SW-Source: 2004-q4/txt/msg00204.txt.bz2 List-Id: GCJ erroneously looks up inner classes (usually private) before classes in other packages. For example, I have three files a/A.java, b/B.java, and b/C.java: -- a/A.java: package a; public abstract class A { public abstract void a(); public void b() { new B().innerB(); } private class B { public void innerB() { System.out.println ("inner b!"); } } } -- b/B.java: package b; class B { public void b() { System.out.println ("b!"); } } -- b/C.java: package b; import a.A; class C extends A { public void a() { System.out.println ("aaa!"); } public static final void main (String[] argv) { C c = new C(); c.a(); c.b(); B b = new B(); b.b(); } } $ gcj -C a/A.java b/B.java b/C.java b/C.java:15: error: Nested class a.A$B is private; cannot be accessed from here. B b = new B(); ^ 1 error $ gcj --version gcj (GCC) 3.4.2 This is easy to work around (just say "b.B b = new b.B()"), but is still incorrect. Javac and jikes do not fail. -- Summary: GCJ imports inner classes too eagarly Product: gcc Version: 3.4.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: csm at gnu dot org CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18119