diff options
author | Bryce McKinlay <mckinlay@redhat.com> | 2004-07-10 05:38:15 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2004-07-10 06:38:15 +0100 |
commit | d3ecb597b35d5b8c4176a0b60c10cbfdb40ace8b (patch) | |
tree | bcd4a6d234666cbea3ddc05897321cf2a6b159ef /gcc/java/parse.h | |
parent | a7e5372d6a8e2f12b6d9a15f71d5ad0794e6507f (diff) | |
download | gcc-d3ecb597b35d5b8c4176a0b60c10cbfdb40ace8b.zip gcc-d3ecb597b35d5b8c4176a0b60c10cbfdb40ace8b.tar.gz gcc-d3ecb597b35d5b8c4176a0b60c10cbfdb40ace8b.tar.bz2 |
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
Diffstat (limited to 'gcc/java/parse.h')
-rw-r--r-- | gcc/java/parse.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/java/parse.h b/gcc/java/parse.h index cf62dae..f0fb67a 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -842,7 +842,7 @@ struct parser_ctxt GTY(()) { != TYPE_NAME (TREE_TYPE (TREE_TYPE (current_this)))) \ && !inherits_from_p (TREE_TYPE (TREE_TYPE (current_this)), \ TREE_TYPE (DECL_CONTEXT (TYPE_NAME (T)))) \ - && !common_enclosing_context_p (TREE_TYPE (TREE_TYPE (current_this)), \ + && !common_enclosing_instance_p (TREE_TYPE (TREE_TYPE (current_this)),\ (T)) \ && INNER_CLASS_TYPE_P (TREE_TYPE (TREE_TYPE (current_this))) \ && !inherits_from_p \ |