public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* java/8899: gcj confused over local classes
@ 2002-12-11 2:16 gbenson
0 siblings, 0 replies; 2+ messages in thread
From: gbenson @ 2002-12-11 2:16 UTC (permalink / raw)
To: gcc-gnats
>Number: 8899
>Category: java
>Synopsis: gcj confused over local classes
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Dec 11 02:16:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: gbenson@redhat.com
>Release: gcc-3.2 patched for PR 1343
>Organization:
>Environment:
Red Hat Linux 8.0
>Description:
The following code fails to compile because gcj is looking in the wrong Foo class for the constructor:
| public class Test {
| public void func1() {
| class Foo {
| Foo(int i) {
| }
| }
| Foo f = new Foo(1);
| }
| public void func2() {
| class Foo {
| Foo(boolean b) {
| }
| }
| }
| }
The error message given is as follows:
| Test.java: In class `Test':
| Test.java: In method `Test.func1()':
| Test.java:7: Can't find constructor `Test$2$Foo(I)' in type `Test$2$Foo'.
| Foo f = new Foo(1);
| ^
| 1 error
>How-To-Repeat:
gcj Test.java # attached
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="Test.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Test.java"
cHVibGljIGNsYXNzIFRlc3QgewogICAgcHVibGljIHZvaWQgZnVuYzEoKSB7CgljbGFzcyBGb28g
ewoJICAgIEZvbyhpbnQgaSkgewoJICAgIH0KCX0KCUZvbyBmID0gbmV3IEZvbygxKTsKICAgIH0K
ICAgIHB1YmxpYyB2b2lkIGZ1bmMyKCkgewoJY2xhc3MgRm9vIHsKCSAgICBGb28oYm9vbGVhbiBi
KSB7CgkgICAgfQoJfQogICAgfQp9Cg==
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: java/8899: gcj confused over local classes
@ 2002-12-13 9:26 Tom Tromey
0 siblings, 0 replies; 2+ messages in thread
From: Tom Tromey @ 2002-12-13 9:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR java/8899; it has been noted by GNATS.
From: Tom Tromey <tromey@redhat.com>
To: gbenson@redhat.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: java/8899: gcj confused over local classes
Date: 13 Dec 2002 10:20:25 -0700
>>>>> "Gary" == Gary Benson <gbenson@redhat.com> writes:
Gary> Number: 8899
Gary> Synopsis: gcj confused over local classes
Gary> | public class Test {
Gary> | public void func1() {
Gary> | class Foo {
Gary> | Foo(int i) {
Gary> | }
Gary> | }
Gary> | Foo f = new Foo(1);
Gary> | }
Gary> | public void func2() {
Gary> | class Foo {
Gary> | Foo(boolean b) {
Gary> | }
Gary> | }
Gary> | }
Gary> | }
I looked at this last night.
It turns out that gcj has no notion of scope for member classes. It
puts them all in a single list attached to the class. So the problem
is that basic required functionality is missing from gcj.
Tom
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-12-13 17:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-11 2:16 java/8899: gcj confused over local classes gbenson
2002-12-13 9:26 Tom Tromey
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).