re PR java/8618 (call to private constructor allowed for anonymous inner class)
authorBryce McKinlay <mckinlay@redhat.com>
Sat, 10 Jul 2004 05:38:15 +0000 (05:38 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Sat, 10 Jul 2004 05:38:15 +0000 (06:38 +0100)
commitd3ecb597b35d5b8c4176a0b60c10cbfdb40ace8b
treebcd4a6d234666cbea3ddc05897321cf2a6b159ef
parenta7e5372d6a8e2f12b6d9a15f71d5ad0794e6507f
re PR java/8618 (call to private constructor allowed for anonymous inner class)

2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/8618
        * parse.y (create_anonymous_class): Remove 'location' argument. Use
        the WFL from TYPE_NAME to get line number for the decl. Fix comment.
        (craft_constructor): Inherit access flags for implicit constructor
        from the enclosing class.
        (create_class): Fix comment typo.
        (resolve_qualified_expression_name): Pass type of qualifier to
        not_accessible_p, not the type in which target field was found.
        (not_accessible_p): Handle inner classes. Expand protected
        qualifier-subtype check to enclosing instances, but don't apply this
        check to static members. Allow protected access to inner classes
        of a subtype. Allow private access within common enclosing context.
        (build_super_invocation): Get WFL line number info from current
        class decl.
        (build_incomplete_class_ref): Update for new create_anonymous_class
        signature.
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
        common_enclosing_instance_p.
        * class.c (common_enclosing_context_p): New. Determine if types
        share a common enclosing context, even across static contexts.
        (common_enclosing_instance_p): Renamed from
        common_enclosing_context_p. Determines if types share a common
        non-static enclosing instance.
        * java-tree.h (common_enclosing_instance_p): Declare.
        * jcf-write.c (get_method_access_flags): New. Surpress private flag
        for inner class constructors.
        (generate_classfile): Use get_method_access_flags.

From-SVN: r84443
gcc/java/ChangeLog
gcc/java/class.c
gcc/java/java-tree.h
gcc/java/jcf-write.c
gcc/java/parse.h
gcc/java/parse.y