[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Comment #21 from tromey at gcc dot gnu dot org 2007-01-09 20:47 --- All gcj front end bugs have been fixed by the gcj-eclipse branch merge. I'm mass-closing the affected PRs. If you believe one of these was closed in error, please reopen it with a note explaining why. Thanks. -- tromey at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|4.0.4 |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From rmathew at gcc dot gnu dot org 2005-05-23 07:45 --- outer_field_access_p(), build_outer_field_access(), etc. are only for non-static fields (instance variables). Even for some simple testcases, I could not get GCJ to emit correct bytecode for non-static instance variables. Lastly these methods are for access from inside a nested class to a private member in a containing class, not the other way round as given in the testcase for this PR. So a significant surgery is indeed needed to make these cases work with GCJ. If anyone is working on a patch to fix this, I would certainly like to hear from them - I have a partially working patch, but I don't know if I'd be able to finish it given the lack of skills as well as time on my part. -- What|Removed |Added CC||rmathew at gcc dot gnu dot ||org Last reconfirmed|2005-05-12 16:53:53 |2005-05-23 07:45:49 date|| Summary|gcj -C doesn't generate |gcj -C doesn't generate |accessors for private |accessors for private |members in inner class |members across nested class ||boundaries http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
-- What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rmathew at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From rmathew at gcc dot gnu dot org 2005-05-26 07:31 --- I have now submitted a patch for fixing this bug: http://gcc.gnu.org/ml/java-patches/2005-q2/msg00570.html -- What|Removed |Added Keywords||patch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-05-27 05:11 --- Subject: Bug 19870 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-05-27 05:11:44 Modified files: libjava: ChangeLog libjava/testsuite/libjava.jacks: jacks.xfail Added files: libjava/testsuite/libjava.lang: PR19870.java PR19870.out Log message: Testsuite adjustments for PR java/19870. * testsuite/libjava.lang/PR19870.java: New testcase. * testsuite/libjava.lang/PR19870.out: Expected output for the testcase. * testsuite/libjava.jacks/jacks.xfail: Add 8.5.2-accessible-static-member-usage-3 and 15.8.4-static-2 Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&r1=1.3636&r2=1.3637 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870.java.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870.out.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.jacks/jacks.xfail.diff?cvsroot=gcc&r1=1.23&r2=1.24 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-05-27 05:15 --- Subject: Bug 19870 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-05-27 05:15:30 Modified files: gcc/java : ChangeLog java-tree.h jcf-write.c parse.y Log message: PR java/19870. * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to NESTED_FIELD_ACCESS_IDENTIFIER_P. (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS. (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P. * jcf-write.c (generate_classfile): Use NESTED_FIELD_ACCESS_IDENTIFIER_P instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. * parse.y (build_outer_field_access): Rename to build_nested_field_access. Support static fields and outer-to-inner class accesses. (outer_field_access_p): Rename to nested_field_access_p. Support static fields and generalise to outer-to-inner class and sibling inner class accesses. (outer_field_expanded_access_p): Rename to nested_field_expanded_access_p and support static fields. (outer_field_access_fix): Rename to nested_field_access_fix and support static fields. (build_outer_field_access_expr): Rename to build_nested_field_access_expr and support static fields. (build_outer_field_access_methods): Rename to build_nested_field_access_methods and support static fields. For static fields, generate accessors without class instance parameters. (build_outer_field_access_method): Rename to build_nested_field_access_method and support static fields. (build_outer_method_access_method): Use NESTED_FIELD_ACCESS_IDENTIFIER_P instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. (resolve_expression_name): Consider static field accesses across nested classes. (resolve_qualified_expression_name): Likewise. (java_complete_lhs): Use nested_field_access_fix instead of outer_field_access_fix. (patch_unary_op): Rename outer_field_flag to nested_field_flag. Use nested_field_expanded_access_p instead of outer_field_expanded_access_p. Use nested_field_access_fix instead of outer_field_access_fix. (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1618&r2=1.1619 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/java-tree.h.diff?cvsroot=gcc&r1=1.232&r2=1.233 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/jcf-write.c.diff?cvsroot=gcc&r1=1.164&r2=1.165 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gcc&r1=1.535&r2=1.536 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From rmathew at gcc dot gnu dot org 2005-05-27 05:39 --- Note that this PR should not be closed as the checked-in patch was only for generating accessors for static fields. Methods are still a problem as is demonstrated by this simple testcase: public class A { public static class B { private static void snafu( ) { System.out.println( "Hello!"); } } public static void main( String[] args) { B.snafu( ); } } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Comment #20 from mckinlay at redhat dot com 2006-06-07 18:06 --- *** Bug 27925 has been marked as a duplicate of this bug. *** -- mckinlay at redhat dot com changed: What|Removed |Added CC||csm at gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Comment #19 from mark at gcc dot gnu dot org 2005-12-22 16:45 --- The testcase in the following message still seems to fail: http://gcc.gnu.org/ml/java/2005-12/msg00181.html Here is a variant of the original example that also fails: public class A { public static class B { private int i = 42; } public static void main(String[] args) { System.out.println(new B().i); } } The only change is making i an instance field instead of a static class field. -- mark at gcc dot gnu dot org changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
-- rmathew at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|rmathew at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|REOPENED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.0.3 |4.0.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Comment #17 from cvs-commit at gcc dot gnu dot org 2005-10-05 19:35 --- Subject: Bug 19870 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-4_0-branch Changes by: [EMAIL PROTECTED] 2005-10-05 19:35:46 Modified files: gcc/java : ChangeLog decl.c java-tree.h jcf-write.c parse.y libjava: ChangeLog libjava/testsuite/libjava.jacks: jacks.xfail Added files: libjava/testsuite/libjava.lang: PR19870.java PR19870.out PR19870_2.java PR19870_2.out Log message: gcc/java: 2005-10-05 Ranjit Mathew <[EMAIL PROTECTED]> PR java/20338 * decl.c (finish_method): Emit _Jv_InitClass for private static methods inside inner classes as well. 2005-10-05 Ranjit Mathew <[EMAIL PROTECTED]> PR java/19870 * parse.y (nested_field_access_p): Rename to nested_member_access_p and expand to handle method accesses across nested classes. (build_outer_method_access_method): Rename to build_nested_method_access_method. Minor adjustments to comments. (resolve_expression_name): Use the newly-renamed nested_member_access_p method. (resolve_qualified_expression_name): Likewise. (patch_method_invocation): Also consider static methods for access method generation. Minor adjustments to comments. (maybe_use_access_method): Use the more general nested_memeber_access_p to determine access across nested class boundaries. Allow THIS_ARG to be NULL (for static methods). 2005-10-05 Tom Tromey <[EMAIL PROTECTED]> PR java/21844: * parse.y (nested_field_access_p): Handle case where outer field is inherited by enclosing class. 2005-10-05 Ranjit Mathew <[EMAIL PROTECTED]> PR java/19870. * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to NESTED_FIELD_ACCESS_IDENTIFIER_P. (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS. (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P. * jcf-write.c (generate_classfile): Use NESTED_FIELD_ACCESS_IDENTIFIER_P instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. * parse.y (build_outer_field_access): Rename to build_nested_field_access. Support static fields and outer-to-inner class accesses. (outer_field_access_p): Rename to nested_field_access_p. Support static fields and generalise to outer-to-inner class and sibling inner class accesses. (outer_field_expanded_access_p): Rename to nested_field_expanded_access_p and support static fields. (outer_field_access_fix): Rename to nested_field_access_fix and support static fields. (build_outer_field_access_expr): Rename to build_nested_field_access_expr and support static fields. (build_outer_field_access_methods): Rename to build_nested_field_access_methods and support static fields. For static fields, generate accessors without class instance parameters. (build_outer_field_access_method): Rename to build_nested_field_access_method and support static fields. (build_outer_method_access_method): Use NESTED_FIELD_ACCESS_IDENTIFIER_P instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. (resolve_expression_name): Consider static field accesses across nested classes. (resolve_qualified_expression_name): Likewise. (java_complete_lhs): Use nested_field_access_fix instead of outer_field_access_fix. (patch_unary_op): Rename outer_field_flag to nested_field_flag. Use nested_field_expanded_access_p instead of outer_field_expanded_access_p. Use nested_field_access_fix instead of outer_field_access_fix. (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. libjava: 2005-10-05 Ranjit Mathew <[EMAIL PROTECTED]> More testsuite adjustments for PR java/19870. * testsuite/libjava.lang/PR19870_2.java: New testcase. * testsuite/libjava.lang/PR19870_2.out: Expected output for the new testcase. * testsuite/libjava.jacks/jacks.xfail: Remove 8.5.2-non-static-member-usage-2 and add 15.12.3-explicit-constructor-9. 2005-10-05 Tom Tromey <[EMAIL PROTECTED]> PR java/21844: * testsuite/libjava.lang/pr21844.java: New file. * testsuite/libjava.lang/pr21844.out: New file. 2005-10-05 Ranjit Mathew <[EMAIL PROTECTED]> Testsuite adjustments for PR java/19870. * testsuite/libjava.lang/PR19870.java: New testcase. * testsuite/libjava.lang/PR19870.out: Expected output for the testcase. * testsuite/libjava.jacks/jacks.xfail: Add 8.5.2-acc
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Comment #18 from pinskia at gcc dot gnu dot org 2005-10-05 19:40 --- Also fixed in 4.0.3. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.1.0 |4.0.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From rmathew at gcc dot gnu dot org 2005-06-19 03:23 --- A patch for the remaining bit is here: http://gcc.gnu.org/ml/java-patches/2005-q2/msg00742.html -- What|Removed |Added URL|http://gcc.gnu.org/ml/java- |http://gcc.gnu.org/ml/java- |patches/2005- |patches/2005- |q2/msg00570.html|q2/msg00742.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From rmathew at gcc dot gnu dot org 2005-08-14 15:50 --- Updated patch for Part 2 posted in: http://gcc.gnu.org/ml/java-patches/2005-q3/msg00195.html -- What|Removed |Added URL|http://gcc.gnu.org/ml/java- |http://gcc.gnu.org/ml/java- |patches/2005- |patches/2005- |q2/msg00742.html|q3/msg00195.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-08-16 18:22 --- Subject: Bug 19870 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-08-16 18:22:34 Modified files: gcc/java : ChangeLog parse.y Log message: PR java/19870 * parse.y (nested_field_access_p): Rename to nested_member_access_p and expand to handle method accesses across nested classes. (build_outer_method_access_method): Rename to build_nested_method_access_method. Minor adjustments to comments. (resolve_expression_name): Use the newly-renamed nested_member_access_p method. (resolve_qualified_expression_name): Likewise. (patch_method_invocation): Also consider static methods for access method generation. Minor adjustments to comments. (maybe_use_access_method): Use the more general nested_memeber_access_p to determine access across nested class boundaries. Allow THIS_ARG to be NULL (for static methods). Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1656&r2=1.1657 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gcc&r1=1.551&r2=1.552 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-08-16 18:32 --- Subject: Bug 19870 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-08-16 18:32:14 Modified files: libjava: ChangeLog libjava/testsuite/libjava.jacks: jacks.xfail Added files: libjava/testsuite/libjava.lang: PR19870_2.java PR19870_2.out Log message: More testsuite adjustments for PR java/19870. * testsuite/libjava.lang/PR19870_2.java: New testcase. * testsuite/libjava.lang/PR19870_2.out: Expected output for the new testcase. * testsuite/libjava.jacks/jacks.xfail: Remove 8.5.2-non-static-member-usage-2 and add 15.12.3-explicit-constructor-9. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&r1=1.3718&r2=1.3719 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870_2.java.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870_2.out.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.jacks/jacks.xfail.diff?cvsroot=gcc&r1=1.28&r2=1.29 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870
[Bug java/19870] gcj -C doesn't generate accessors for private members across nested class boundaries
--- Additional Comments From rmathew at gcc dot gnu dot org 2005-08-16 18:39 --- Last part of the fix has now been checked in. -- What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870