re GNATS gcj/373: (interface inner classes are implicitly static)

Fix for PR gcj/373:
	* parse.y (create_class): Set ACC_STATIC if class is declared in an
	interface.

From-SVN: r38365
This commit is contained in:
Bryce McKinlay 2000-12-18 21:23:02 +00:00 committed by Bryce McKinlay
parent da68e69359
commit 6d003d5c8f
2 changed files with 12 additions and 1 deletions

View File

@ -6,6 +6,10 @@
* class.c (layout_class): Call maybe_layout_super_class on
superinterfaces also, but only if compiling from bytecode.
Fix for PR gcj/373:
* parse.y (create_class): Set ACC_STATIC if class is declared in an
interface.
2000-12-15 Tom Tromey <tromey@redhat.com>
* jcf-parse.c (jcf_parse_source): Set wfl_operator if not already

View File

@ -3887,7 +3887,14 @@ create_class (flags, id, super, interfaces)
else
super_decl_type = NULL_TREE;
/* Set super info and mark the class a complete */
/* A class nested in an interface is implicitly static. */
if (INNER_CLASS_DECL_P (decl)
&& CLASS_INTERFACE (TYPE_NAME (TREE_TYPE (DECL_CONTEXT (decl)))))
{
flags |= ACC_STATIC;
}
/* Set super info and mark the class as complete. */
set_super_info (flags, TREE_TYPE (decl), super_decl_type,
ctxp->interface_number);
ctxp->interface_number = 0;