This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug java/20338] Program compiled with gcj crashes when accessing private static method from nested class



------- Comment #9 from cvs-commit at gcc dot gnu dot org  2005-10-05 19:35 -------
Subject: Bug 20338

CVSROOT:        /cvs/gcc
Module name:    gcc
Branch:         gcc-4_0-branch
Changes by:     bryce@gcc.gnu.org       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  <rmathew@hotmail.com>

        PR java/20338
        * decl.c (finish_method): Emit _Jv_InitClass for private static
        methods inside inner classes as well.

        2005-10-05  Ranjit Mathew  <rmathew@hotmail.com>

        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  <tromey@redhat.com>

        PR java/21844:
        * parse.y (nested_field_access_p): Handle case where outer field
        is inherited by enclosing class.

        2005-10-05  Ranjit Mathew  <rmathew@hotmail.com>

        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  <rmathew@hotmail.com>

        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  <tromey@redhat.com>

        PR java/21844:
        * testsuite/libjava.lang/pr21844.java: New file.
        * testsuite/libjava.lang/pr21844.out: New file.

        2005-10-05  Ranjit Mathew  <rmathew@hotmail.com>

        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/gcc/java/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1556.2.34&r2=1.1556.2.35
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/decl.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.209.4.4&r2=1.209.4.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/java-tree.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.226.8.3&r2=1.226.8.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/jcf-write.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.162.4.1&r2=1.162.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.528.6.4&r2=1.528.6.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.3391.2.103&r2=1.3391.2.104
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.jacks/jacks.xfail.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.19.8.2&r2=1.19.8.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870.java.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.24.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870.out.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.24.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870_2.java.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.18.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.lang/PR19870_2.out.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.18.1


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20338


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]