public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* java/1176: gcj does not look in superclass scope for inner classes
@ 2000-12-20 12:21 mdejong
  0 siblings, 0 replies; only message in thread
From: mdejong @ 2000-12-20 12:21 UTC (permalink / raw)
  To: java-gnats

>Number:         1176
>Category:       java
>Synopsis:       gcj does not look in superclass scope for inner classes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apbianco
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 20 12:17:00 PST 2000
>Closed-Date:    Fri Apr 21 16:04:39 PDT 2000
>Last-Modified:  Fri Apr 21 16:16:00 PDT 2000
>Originator:     Mo
>Release:        egcs CVS as of Sat Apr 8 2000
>Organization:
>Environment:
I was running this on a Red Hat 5.2 box (Intel). I compile
egcs and libjava from the CVS today (Sat Apr 8 2000).
>Description:
I tried to compile the following two classes.

// File InnerClass.java

public class InnerClass {
    public class MyInner {}
}

// File InnerClass_Test.java

public class InnerClass_Test extends InnerClass {
    void foo() {
	MyInner mi = new MyInner();	
    }
}


I can compile them just fine with javac and jikes,
but gcj does not seem to know that it should look
inside the scope of it's superclass for class names.

% javac InnerClass.java InnerClass_Test.java 

% jikes InnerClass.java InnerClass_Test.java

% rm *.class

% gcj -c InnerClass.java InnerClass_Test.java
InnerClass_Test.java:5: Type `MyInner' not found in the declaration of the local variable `mi'.
        MyInner mi = new MyInner();

Now here is where it gets a little strange.
If you do the following, you get a different error.

% gcj -C InnerClass.java

% ls *.class
InnerClass$MyInner.class  InnerClass.class

% gcj -C InnerClass_Test.java
InnerClass_Test.java: In class `InnerClass_Test':
InnerClass_Test.java: In method `foo()':
InnerClass_Test.java:5: No enclosing instance for inner class `InnerClass$MyInner' is in scope; an explicit one must be provided when creating this inner class.
        MyInner mi = new MyInner();
                         ^
1 error



Either way, gcj is broken. It should look in the super
class to find the class in the first case, and it should
not give the second error if a .class file for the
super class is found.
>How-To-Repeat:
See above.
>Fix:

>Release-Note:

>Audit-Trail:

Formerly PR gcj/194

State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Wed Apr 19 19:16:55 2000
State-Changed-Why:
    Can you try this patch?

From: apbianco@cygnus.com
To: apbianco@cygnus.com, java-gnats@sourceware.cygnus.com, mdejong@cygnus.com
Cc:  
Subject: Re: gcj/194
Date: 20 Apr 2000 02:16:55 -0000

 Synopsis: gcj does not look in superclass scope for inner classes
 
 State-Changed-From-To: open->feedback
 State-Changed-By: apbianco
 State-Changed-When: Wed Apr 19 19:16:55 2000
 State-Changed-Why:
     Can you try this patch?
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=194&database=java
State-Changed-From-To: feedback->open
State-Changed-By: apbianco
State-Changed-When: Wed Apr 19 19:27:31 2000
State-Changed-Why:
    Oops. Sorry.

From: apbianco@cygnus.com
To: apbianco@cygnus.com, java-gnats@sourceware.cygnus.com, mdejong@cygnus.com
Cc:  
Subject: Re: gcj/194
Date: 20 Apr 2000 02:27:31 -0000

 Synopsis: gcj does not look in superclass scope for inner classes
 
 State-Changed-From-To: feedback->open
 State-Changed-By: apbianco
 State-Changed-When: Wed Apr 19 19:27:31 2000
 State-Changed-Why:
     Oops. Sorry.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=194&database=java
State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Thu Apr 20 00:29:15 2000
State-Changed-Why:
    There is a patch.

From: apbianco@cygnus.com
To: apbianco@cygnus.com, java-gnats@sourceware.cygnus.com, mdejong@cygnus.com
Cc:  
Subject: Re: gcj/194
Date: 20 Apr 2000 07:29:15 -0000

 Synopsis: gcj does not look in superclass scope for inner classes
 
 State-Changed-From-To: open->feedback
 State-Changed-By: apbianco
 State-Changed-When: Thu Apr 20 00:29:15 2000
 State-Changed-Why:
     There is a patch.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=194&database=java

From: Mo DeJong <mdejong@cygnus.com>
To: apbianco@cygnus.com
Cc: java-gnats@sourceware.cygnus.com
Subject: Re: gcj/194
Date: Thu, 20 Apr 2000 20:22:05 -0700 (PDT)

 I tested the patch for 194 and it seems to be working just fine.
 
 Mo Dejong
 Red Hat Inc.
 
 On 20 Apr 2000 apbianco@cygnus.com wrote:
 
 > Synopsis: gcj does not look in superclass scope for inner classes
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: apbianco
 > State-Changed-When: Thu Apr 20 00:29:15 2000
 > State-Changed-Why:
 >     There is a patch.
 > 
 > http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=194&database=java
 > 
 
State-Changed-From-To: feedback->closed
State-Changed-By: apbianco
State-Changed-When: Fri Apr 21 16:04:39 2000
State-Changed-Why:
    I checked in the following patch:
      http://gcc.gnu.org/ml/gcc-patches/2000-04/msg00843.html

From: apbianco@cygnus.com
To: apbianco@cygnus.com, java-gnats@sourceware.cygnus.com, mdejong@cygnus.com
Cc:  
Subject: Re: gcj/194
Date: 21 Apr 2000 23:04:39 -0000

 Synopsis: gcj does not look in superclass scope for inner classes
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: apbianco
 State-Changed-When: Fri Apr 21 16:04:39 2000
 State-Changed-Why:
     I checked in the following patch:
       http://gcc.gnu.org/ml/gcc-patches/2000-04/msg00843.html
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=194&database=java
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="InnerClass.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="InnerClass.java"

Ly8gRmlsZSBJbm5lckNsYXNzLmphdmEKCnB1YmxpYyBjbGFzcyBJbm5lckNsYXNzIHsKICAgIHB1
YmxpYyBjbGFzcyBNeUlubmVyIHt9Cn0K----gnatsweb-attachment----
Content-Type: application/octet-stream; name="194-patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="194-patch"

MjAwMC0wNC0yMCAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+
CgoJKiBwYXJzZS5oIChJTk5FUl9FTkNMT1NJTkdfU0NPUEVfQ0hFQ0spOiBJbW1lZGlhdGUgaW5u
ZXIgY2xhc3NlcwoJb2YgZGlyZWN0bHkgaW5oZXJpdGVkIHR5cGUgY29uc2lkZXJlZCBpbiBzY29w
ZS4KCSogcGFyc2UueSAoZG9fcmVzb2x2ZV9jbGFzcyk6IFNlYXJjaCBpbmhlcml0ZWQgY2xhc3Nl
cyBmb3IgaW5uZXIKCWNsYXNzZXMuCgpJbmRleDogcGFyc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL2djYy9lZ2NzL2djYy9qYXZhL3BhcnNlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NDkKZGlmZiAtdSAtcCAtcjEuNDkgcGFyc2UuaAotLS0gcGFyc2UuaAkyMDAwLzA0LzA2IDAwOjQz
OjI3CTEuNDkKKysrIHBhcnNlLmgJMjAwMC8wNC8yMCAwNjozNTozMwpAQCAtODI3LDEwICs4Mjcs
MTIgQEAgc3RydWN0IHBhcnNlcl9jdHh0IHsKICAgIGNvbnRleHQuICAqLwogI2RlZmluZSBJTk5F
Ul9FTkNMT1NJTkdfU0NPUEVfQ0hFQ0soVCkJCQkJCVwKICAgKElOTkVSX0NMQVNTX1RZUEVfUCAo
KFQpKSAmJiAhQU5PTllNT1VTX0NMQVNTX1AgKChUKSkJCQlcCi0gICAvKiBXZSBoYXZlIGEgdGhp
cyBhbmQgaXQncyBub3QgdGhlIHJpZ2h0IG9uZSAqLwkJCVwKICAgICYmICgoY3VycmVudF90aGlz
CQkJCQkJCVwKKwkvKiBXZSBoYXZlIGEgdGhpcyBhbmQgaXQncyBub3QgdGhlIHJpZ2h0IG9uZSAq
LwkJCVwKIAkmJiAoREVDTF9DT05URVhUIChUWVBFX05BTUUgKChUKSkpCQkJCVwKLQkgICAgIT0g
VFlQRV9OQU1FIChUUkVFX1RZUEUgKFRSRUVfVFlQRSAoY3VycmVudF90aGlzKSkpKSkJXAorCSAg
ICAhPSBUWVBFX05BTUUgKFRSRUVfVFlQRSAoVFJFRV9UWVBFIChjdXJyZW50X3RoaXMpKSkpCVwK
KwkmJiAhaW5oZXJpdHNfZnJvbV9wIChUUkVFX1RZUEUgKFRSRUVfVFlQRSAoY3VycmVudF90aGlz
KSksCVwKKwkJCSAgICAgVFJFRV9UWVBFIChERUNMX0NPTlRFWFQgKFRZUEVfTkFNRSAoVCkpKSkp
CVwKICAgICAgICAvKiBXZSBkb24ndCBoYXZlIGEgdGhpcy4gKi8JCQkJCVwKICAgICAgICB8fCAh
Y3VycmVudF90aGlzKSkKIApJbmRleDogcGFyc2UueQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L2djYy9lZ2NzL2djYy9qYXZhL3BhcnNlLnksdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUyCmRp
ZmYgLXUgLXAgLXIxLjE1MiBwYXJzZS55Ci0tLSBwYXJzZS55CTIwMDAvMDQvMjAgMDI6NTI6MjYJ
MS4xNTIKKysrIHBhcnNlLnkJMjAwMC8wNC8yMCAwNjozNjowNwpAQCAtNTM5MCw4ICs1NDA1LDMw
IEBAIGRvX3Jlc29sdmVfY2xhc3MgKGVuY2xvc2luZywgY2xhc3NfdHlwZSwKICAgLyogTWF5YmUg
c29tZSBjb2RlIGhlcmUgc2hvdWxkIGJlIGFkZGVkIHRvIGxvYWQgdGhlIGNsYXNzIG9yCiAgICAg
IHNvbWV0aGluZywgYXQgbGVhc3QgaWYgdGhlIGNsYXNzIGlzbid0IGFuIGlubmVyIGNsYXNzIGFu
ZCBlbmRlZAogICAgICBiZWluZyBsb2FkZWQgZnJvbSBjbGFzcyBmaWxlLiBGSVhNRS4gKi8KLSAg
aWYgKChuZXdfY2xhc3NfZGVjbCA9IGZpbmRfYXNfaW5uZXJfY2xhc3MgKGVuY2xvc2luZywgY2xh
c3NfdHlwZSwgY2wpKSkKLSAgICByZXR1cm4gbmV3X2NsYXNzX2RlY2w7CisgIHdoaWxlIChlbmNs
b3NpbmcpCisgICAgeworICAgICAgaWYgKChuZXdfY2xhc3NfZGVjbCA9IGZpbmRfYXNfaW5uZXJf
Y2xhc3MgKGVuY2xvc2luZywgY2xhc3NfdHlwZSwgY2wpKSkKKyAgICAgICAgcmV0dXJuIG5ld19j
bGFzc19kZWNsOworICAgICAgLyogTm93IGdvIHRvIHRoZSB1cHBlciBjbGFzcyAqLworICAgICAg
ZW5jbG9zaW5nID0gQ0xBU1NUWVBFX1NVUEVSIChUUkVFX1RZUEUgKGVuY2xvc2luZykpOworICAg
ICAgaWYgKGVuY2xvc2luZyA9PSBvYmplY3RfdHlwZV9ub2RlKQorICAgICAgICBlbmNsb3Npbmcg
PSBOVUxMOworICAgICAgaWYgKCFlbmNsb3NpbmcpCisJY29udGludWU7CisgICAgICBlbHNlIGlm
IChUUkVFX0NPREUgKGVuY2xvc2luZykgIT0gUkVDT1JEX1RZUEUpCisgICAgICAgIHsKKyAgICAg
ICAgICB0cmVlIG5hbWU7CisgICAgICAgICAgaWYgKFRSRUVfQ09ERSAoZW5jbG9zaW5nKSA9PSBJ
REVOVElGSUVSX05PREUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIEJVSUxEX1BUUl9G
Uk9NX05BTUUgKG5hbWUsIGVuY2xvc2luZyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbmFtZSA9IGVuY2xvc2luZzsKKyAgICAgICAgICBlbmNsb3NpbmcgPSBk
b19yZXNvbHZlX2NsYXNzIChOVUxMLCBuYW1lLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgfQorICAg
ICAgZWxzZQorICAgICAgICBlbmNsb3NpbmcgPSBUWVBFX05BTUUgKGVuY2xvc2luZyk7CisgICAg
fQogCiAgIC8qIDEtIENoZWNrIGZvciB0aGUgdHlwZSBpbiBzaW5nbGUgaW1wb3J0cyAqLwogICBp
ZiAoZmluZF9pbl9pbXBvcnRzIChjbGFzc190eXBlKSkK



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2000-12-20 12:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-20 12:21 java/1176: gcj does not look in superclass scope for inner classes mdejong

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).